blob: 03090f7dd63dda21dbc83991962889038aa138cc [file] [log] [blame]
lh9ed821d2023-04-07 01:36:19 -07001/* Test program for making nonexecutable stacks executable
2 on DT_NEEDED load of a DSO that requires executable stacks. */
3
4#include <dlfcn.h>
5#include <stdio.h>
6#include <string.h>
7#include <unistd.h>
8#include <error.h>
9
10extern void tryme (void); /* from tst-execstack-mod.so */
11
12static void deeper (void (*f) (void));
13
14static int
15do_test (void)
16{
17 tryme ();
18
19 /* Test that growing the stack region gets new executable pages too. */
20 deeper (&tryme);
21
22 return 0;
23}
24
25static void
26deeper (void (*f) (void))
27{
28 char stack[1100 * 1024];
29 memfrob (stack, sizeof stack);
30 (*f) ();
31 memfrob (stack, sizeof stack);
32}
33
34
35#define TEST_FUNCTION do_test ()
36#include "../test-skeleton.c"