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
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 (f: &tryme);
20
21 return 0;
22}
23
24static void
25deeper (void (*f) (void))
26{
27 char stack[1100 * 1024];
28 explicit_bzero (s: stack, n: sizeof stack);
29 (*f) ();
30 memfrob (s: stack, n: sizeof stack);
31}
32
33#include <support/test-driver.c>
34

source code of glibc/elf/tst-execstack-prog.c