aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDag-Erling Smørgrav <des@FreeBSD.org>2026-03-09 21:00:52 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>2026-03-09 21:01:41 +0000
commit863b5c137a98d29dc6964cba0e0c4fe2a8bebab8 (patch)
tree4daa16d5d6e0f32d502cde24e0d548b0bc26b38d
parent48368f702423742b2a7dff7ad3191625e8bf26f0 (diff)
system(3): Fix brain glitch in previous commit
We were saving SIGINT twice instead of SIGINT and SIGQUIT. Also restore original order of operations (SIGINT then SIGQUIT), which matches the order in which they're discussed in the POSIX description of system(3). MFC after: 1 week Sponsored by: Klara, Inc. Fixes: 48368f702423 ("system(3): Address test robustness issue")
-rw-r--r--lib/libc/tests/stdlib/system_test.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/lib/libc/tests/stdlib/system_test.c b/lib/libc/tests/stdlib/system_test.c
index cb6ecdb28065..9e556f257791 100644
--- a/lib/libc/tests/stdlib/system_test.c
+++ b/lib/libc/tests/stdlib/system_test.c
@@ -128,7 +128,7 @@ ATF_TC_BODY(system_concurrent, tc)
/* Save the current signal dispositions */
ATF_REQUIRE_EQ(0, sigaction(SIGINT, NULL, &sigint));
- ATF_REQUIRE_EQ(0, sigaction(SIGINT, NULL, &sigquit));
+ ATF_REQUIRE_EQ(0, sigaction(SIGQUIT, NULL, &sigquit));
ATF_REQUIRE_EQ(0, sigprocmask(0, NULL, &normset));
/* Spawn threads which block on these files */
@@ -149,10 +149,10 @@ ATF_TC_BODY(system_concurrent, tc)
/* Release the locks */
for (int i = 0; i < N; i++) {
/* Check the signal dispositions */
- ATF_REQUIRE_EQ(0, sigaction(SIGQUIT, NULL, &sigact));
- ATF_CHECK_EQ(SIG_IGN, sigact.sa_handler);
ATF_REQUIRE_EQ(0, sigaction(SIGINT, NULL, &sigact));
ATF_CHECK_EQ(SIG_IGN, sigact.sa_handler);
+ ATF_REQUIRE_EQ(0, sigaction(SIGQUIT, NULL, &sigact));
+ ATF_CHECK_EQ(SIG_IGN, sigact.sa_handler);
#ifndef PROCMASK_IS_THREADMASK
ATF_REQUIRE_EQ(0, sigprocmask(0, NULL, &sigset));
ATF_CHECK(sigismember(&sigset, SIGCHLD));
@@ -167,14 +167,14 @@ ATF_TC_BODY(system_concurrent, tc)
}
/* Check the signal dispositions */
- ATF_REQUIRE_EQ(0, sigaction(SIGQUIT, NULL, &sigact));
- ATF_CHECK_EQ(sigquit.sa_handler, sigact.sa_handler);
- ATF_CHECK_EQ(sigquit.sa_flags, sigact.sa_flags);
- ATF_CHECK_EQ(0, sigcmpset(&sigquit.sa_mask, &sigact.sa_mask));
ATF_REQUIRE_EQ(0, sigaction(SIGINT, NULL, &sigact));
ATF_CHECK_EQ(sigint.sa_handler, sigact.sa_handler);
ATF_CHECK_EQ(sigint.sa_flags, sigact.sa_flags);
ATF_CHECK_EQ(0, sigcmpset(&sigint.sa_mask, &sigact.sa_mask));
+ ATF_REQUIRE_EQ(0, sigaction(SIGQUIT, NULL, &sigact));
+ ATF_CHECK_EQ(sigquit.sa_handler, sigact.sa_handler);
+ ATF_CHECK_EQ(sigquit.sa_flags, sigact.sa_flags);
+ ATF_CHECK_EQ(0, sigcmpset(&sigquit.sa_mask, &sigact.sa_mask));
ATF_REQUIRE_EQ(0, sigprocmask(0, NULL, &sigset));
ATF_CHECK_EQ(0, sigcmpset(&sigset, &normset));
}