aboutsummaryrefslogtreecommitdiff
path: root/benchtests/bench-strcpy_chk.c
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2013-12-29 23:13:20 +0000
committerMike Frysinger <vapier@gentoo.org>2014-02-08 06:58:43 -0500
commitc5bb8e2399f55c09a98c66936940ba744b5841da (patch)
tree32453369908787a9d47008667138e85225bf339f /benchtests/bench-strcpy_chk.c
parent10444e425e539ec12e42415756b0a874413ce94a (diff)
downloadglibc-c5bb8e2399f55c09a98c66936940ba744b5841da.zip
glibc-c5bb8e2399f55c09a98c66936940ba744b5841da.tar.gz
glibc-c5bb8e2399f55c09a98c66936940ba744b5841da.tar.bz2
tests: unify fortification handler logic
We have multiple tests that copy & paste the same logic for disabling the fortification output. Let's unify this in the test-skeleton instead. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'benchtests/bench-strcpy_chk.c')
-rw-r--r--benchtests/bench-strcpy_chk.c25
1 files changed, 5 insertions, 20 deletions
diff --git a/benchtests/bench-strcpy_chk.c b/benchtests/bench-strcpy_chk.c
index 8accb61..828c9bc 100644
--- a/benchtests/bench-strcpy_chk.c
+++ b/benchtests/bench-strcpy_chk.c
@@ -53,6 +53,9 @@ simple_strcpy_chk (char *dst, const char *src, size_t len)
#include <setjmp.h>
#include <signal.h>
+static int test_main (void);
+#include "../test-skeleton.c"
+
volatile int chk_fail_ok;
jmp_buf chk_fail_buf;
@@ -156,28 +159,12 @@ do_test (size_t align1, size_t align2, size_t len, size_t dlen, int max_char)
putchar ('\n');
}
-int
+static int
test_main (void)
{
size_t i;
- struct sigaction sa;
- sa.sa_handler = handler;
- sa.sa_flags = 0;
- sigemptyset (&sa.sa_mask);
-
- sigaction (SIGABRT, &sa, NULL);
-
- /* Avoid all the buffer overflow messages on stderr. */
- int fd = open (_PATH_DEVNULL, O_WRONLY);
- if (fd == -1)
- close (STDERR_FILENO);
- else
- {
- dup2 (fd, STDERR_FILENO);
- close (fd);
- }
- setenv ("LIBC_FATAL_STDERR_", "1", 1);
+ set_fortify_handler (handler);
test_init ();
@@ -254,5 +241,3 @@ test_main (void)
return 0;
}
-
-#include "../test-skeleton.c"