1 /* Test program for executable stacks in an executable itself.  */
2 
3 #include <dlfcn.h>
4 #include <stdio.h>
5 #include <string.h>
6 #include <unistd.h>
7 #include <error.h>
8 
9 #include "tst-execstack-mod.c"	/* This defines the `tryme' test function.  */
10 
11 static void deeper (void (*f) (void));
12 
13 static int
do_test(void)14 do_test (void)
15 {
16   tryme ();
17 
18   /* Test that growing the stack region gets new executable pages too.  */
19   deeper (&tryme);
20 
21   return 0;
22 }
23 
24 static void
deeper(void (* f)(void))25 deeper (void (*f) (void))
26 {
27   char stack[1100 * 1024];
28   explicit_bzero (stack, sizeof stack);
29   (*f) ();
30   memfrob (stack, sizeof stack);
31 }
32 
33 #include <support/test-driver.c>
34