- test_long("strlcat", res, offset+strlen(lynx));
- test_long("memcmp", memcmp(dst, qbf, offset), 0);
- test_long("overrun", *(char*)(ptr+PAGE_SIZE), 0);
- test_long("null-term", dst[offset], 0);
-
- test_stop();
- return EXIT_SUCCESS;
-}
\ No newline at end of file
+ T_ASSERT_EQ(res, offset+strlen(lynx), "strlcat");
+ T_ASSERT_EQ(memcmp(dst, qbf, offset), 0, NULL);
+ T_ASSERT_EQ(*(char*)(ptr+PAGE_SIZE), 0, NULL);
+ T_ASSERT_EQ(dst[offset], 0, "null-term");
+}
+
+T_DECL(strlcat_overlap, "strlcat(3) with overlap: PR-20105548")
+{
+ char buffer[21];
+ memset(buffer,'x',sizeof(buffer));
+ buffer[0]='\0';
+ buffer[20]='\0';
+
+ char *a = &buffer[0];
+ char *b = &buffer[10];
+ strlcat(a,b,10);
+ T_PASS("did not abort");
+}