aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSiva Mahadevan <siva@FreeBSD.org>2026-06-10 22:27:42 +0000
committerSiva Mahadevan <siva@FreeBSD.org>2026-06-10 23:30:24 +0000
commit9f2a38cf40f2632472b3889505fd1ab5d6ba9e1b (patch)
treebb7411f17b8a9e77a9cd8840bd51e2ffbf3b293b
parent432ac5c07c6b1fb960f2e7d8e8cfb1306ce351ff (diff)
libc/fortify_uio_test: replace stdin in base readv tests
This fixes the readv_before_end and preadv_before_end test timeout failures on riscv. See https://ci.freebsd.org/job/FreeBSD-main-riscv64-test/lastCompletedBuild/testReport/lib.libc.secure/fortify_uio_test/readv_before_end/ Reviewed by: kevans, emaste MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D57420
-rw-r--r--lib/libc/tests/secure/fortify_uio_test.c18
-rwxr-xr-xlib/libc/tests/secure/generate-fortify-tests.lua2
2 files changed, 20 insertions, 0 deletions
diff --git a/lib/libc/tests/secure/fortify_uio_test.c b/lib/libc/tests/secure/fortify_uio_test.c
index 46b46ed2f7df..b1b51eff824c 100644
--- a/lib/libc/tests/secure/fortify_uio_test.c
+++ b/lib/libc/tests/secure/fortify_uio_test.c
@@ -179,6 +179,8 @@ ATF_TC_BODY(readv_before_end, tc)
const size_t __len = 2 - 1;
const size_t __idx __unused = __len - 1;
+ replace_stdin();
+
readv(STDIN_FILENO, __stack.__buf, __len);
#undef BUF
@@ -200,6 +202,8 @@ ATF_TC_BODY(readv_end, tc)
const size_t __len = 2;
const size_t __idx __unused = __len - 1;
+ replace_stdin();
+
readv(STDIN_FILENO, __stack.__buf, __len);
#undef BUF
@@ -230,6 +234,8 @@ ATF_TC_BODY(readv_after_end, tc)
/* Child */
disable_coredumps();
+ replace_stdin();
+
readv(STDIN_FILENO, __stack.__buf, __len);
_exit(EX_SOFTWARE); /* Should have aborted. */
@@ -274,6 +280,7 @@ ATF_TC_BODY(readv_heap_before_end, tc)
const size_t __idx __unused = __len - 1;
__stack.__buf = malloc(__bufsz);
+ replace_stdin();
readv(STDIN_FILENO, __stack.__buf, __len);
#undef BUF
@@ -297,6 +304,7 @@ ATF_TC_BODY(readv_heap_end, tc)
const size_t __idx __unused = __len - 1;
__stack.__buf = malloc(__bufsz);
+ replace_stdin();
readv(STDIN_FILENO, __stack.__buf, __len);
#undef BUF
@@ -329,6 +337,7 @@ ATF_TC_BODY(readv_heap_after_end, tc)
/* Child */
disable_coredumps();
__stack.__buf = malloc(__bufsz);
+ replace_stdin();
readv(STDIN_FILENO, __stack.__buf, __len);
_exit(EX_SOFTWARE); /* Should have aborted. */
@@ -542,6 +551,8 @@ ATF_TC_BODY(preadv_before_end, tc)
const size_t __len = 2 - 1;
const size_t __idx __unused = __len - 1;
+ replace_stdin();
+
preadv(STDIN_FILENO, __stack.__buf, __len, 0);
#undef BUF
@@ -563,6 +574,8 @@ ATF_TC_BODY(preadv_end, tc)
const size_t __len = 2;
const size_t __idx __unused = __len - 1;
+ replace_stdin();
+
preadv(STDIN_FILENO, __stack.__buf, __len, 0);
#undef BUF
@@ -593,6 +606,8 @@ ATF_TC_BODY(preadv_after_end, tc)
/* Child */
disable_coredumps();
+ replace_stdin();
+
preadv(STDIN_FILENO, __stack.__buf, __len, 0);
_exit(EX_SOFTWARE); /* Should have aborted. */
@@ -637,6 +652,7 @@ ATF_TC_BODY(preadv_heap_before_end, tc)
const size_t __idx __unused = __len - 1;
__stack.__buf = malloc(__bufsz);
+ replace_stdin();
preadv(STDIN_FILENO, __stack.__buf, __len, 0);
#undef BUF
@@ -660,6 +676,7 @@ ATF_TC_BODY(preadv_heap_end, tc)
const size_t __idx __unused = __len - 1;
__stack.__buf = malloc(__bufsz);
+ replace_stdin();
preadv(STDIN_FILENO, __stack.__buf, __len, 0);
#undef BUF
@@ -692,6 +709,7 @@ ATF_TC_BODY(preadv_heap_after_end, tc)
/* Child */
disable_coredumps();
__stack.__buf = malloc(__bufsz);
+ replace_stdin();
preadv(STDIN_FILENO, __stack.__buf, __len, 0);
_exit(EX_SOFTWARE); /* Should have aborted. */
diff --git a/lib/libc/tests/secure/generate-fortify-tests.lua b/lib/libc/tests/secure/generate-fortify-tests.lua
index c9cd9353a869..ef34fb8513c8 100755
--- a/lib/libc/tests/secure/generate-fortify-tests.lua
+++ b/lib/libc/tests/secure/generate-fortify-tests.lua
@@ -411,6 +411,7 @@ local all_tests = {
"__buf",
"__len",
},
+ init = stdio_init,
},
{
func = "readv",
@@ -435,6 +436,7 @@ local all_tests = {
"__len",
"0",
},
+ init = stdio_init,
},
{
func = "preadv",