blob: 5a66d63ca9dd2523de403308699f4dea34dea07d [file] [log] [blame]
lh9ed821d2023-04-07 01:36:19 -07001/* 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
11static void deeper (void (*f) (void));
12
13static int
14do_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
24static void
25deeper (void (*f) (void))
26{
27 char stack[1100 * 1024];
28 memfrob (stack, sizeof stack);
29 (*f) ();
30 memfrob (stack, sizeof stack);
31}
32
33
34#define TEST_FUNCTION do_test ()
35#include "../test-skeleton.c"