(root)/
glibc-2.38/
elf/
tst-execstack-prog.c
       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
      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
      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>