aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Chagin <dchagin@FreeBSD.org>2023-08-24 18:02:52 +0000
committerDmitry Chagin <dchagin@FreeBSD.org>2023-08-27 07:32:29 +0000
commit2837c79aed1b5f14609aa354bf730f9fbfa70e1c (patch)
tree3c02677aad4f992c0fd4d4adbd32512734388277
parent265a3b49d017a07070d6e5bc18c66e30e01c908a (diff)
downloadsrc-2837c79aed1b5f14609aa354bf730f9fbfa70e1c.tar.gz
src-2837c79aed1b5f14609aa354bf730f9fbfa70e1c.zip
tests: Handle SIGSEGV in the vm stack mprotect exec test
To exit gracefully handle SIGSEGV and mark the test as failed. MFC after: 3 days (cherry picked from commit f8bc606aad35daf9853e3198f14d4a7baba36fcb)
-rw-r--r--tests/sys/vm/stack/stack_mprotect_exec_test.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/tests/sys/vm/stack/stack_mprotect_exec_test.c b/tests/sys/vm/stack/stack_mprotect_exec_test.c
index d12d99ea39ee..ba5a1d5cb859 100644
--- a/tests/sys/vm/stack/stack_mprotect_exec_test.c
+++ b/tests/sys/vm/stack/stack_mprotect_exec_test.c
@@ -12,8 +12,15 @@
#include <vm/vm_param.h>
#include <atf-c.h>
+#include <signal.h>
#include <unistd.h>
+static void
+sigsegv_handler(int sig __unused)
+{
+
+ atf_tc_fail("Invalid stack protection mode after grows");
+}
ATF_TC_WITHOUT_HEAD(mprotect_exec_test);
ATF_TC_BODY(mprotect_exec_test, tc)
@@ -22,6 +29,8 @@ ATF_TC_BODY(mprotect_exec_test, tc)
char *addr, *guard;
size_t alloc_size;
+ signal(SIGSEGV, sigsegv_handler);
+
pagesize = sysconf(_SC_PAGESIZE);
ATF_REQUIRE(pagesize > 0);