From 210da56f6ff711ba6b92d0b83f0c2ecfc824cff0 Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Fri, 11 Jan 2019 15:52:56 +0100 Subject: new fail: recurse_alloca (to test -fstack-clash-protection) --- fail.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'fail.c') diff --git a/fail.c b/fail.c index b95b1b6..5d1b80b 100644 --- a/fail.c +++ b/fail.c @@ -9,6 +9,7 @@ #include #include +#include #include #include #include @@ -73,12 +74,21 @@ oom() void recurse(char *n) { - char m[1024]; + char m[512]; recurse(m); if (n) m[0] = n[0] = 42; } +void +recurse_alloca(char *n) +{ + char *m = alloca(1024*1024); + recurse_alloca(m); + if (n) + m[0] = n[0] = 42; +} + void abortme() { @@ -148,13 +158,14 @@ main(int argc, char *argv[]) { int c; - while ((c = getopt(argc, argv, "123DOabcdikrst")) != -1) { + while ((c = getopt(argc, argv, "123DORabcdikrst")) != -1) { switch (c) { case '1': exit(-1); break; case '2': exit(2); break; case '3': exit(111); break; case 'D': uninterruptible(); break; case 'O': oom(); break; + case 'R': recurse_alloca(0); break; case 'a': abortme(); break; case 'b': mmap_sigbus(); break; case 'c': violate_seccomp(); break; @@ -167,6 +178,6 @@ main(int argc, char *argv[]) } } - write(2, "Usage: fail [-123Oabcdikrst]\n", 29); + write(2, "Usage: fail [-123ORabcdikrst]\n", 30); exit(1); } -- cgit 1.4.1