diff --git a/testcases/kernel/syscalls/clone/clone03.c b/testcases/kernel/syscalls/clone/clone03.c index 24ee8e6..dada00c 100644 --- a/testcases/kernel/syscalls/clone/clone03.c +++ b/testcases/kernel/syscalls/clone/clone03.c @@ -87,13 +87,15 @@ static int pfd[2]; char *TCID = "clone03"; /* Test program identifier. */ int TST_TOTAL = 1; /* Total number of test cases. */ +void *poison_start; /* stack for child */ +void *child_stack; /* stack for child */ +#define POISON_SIZE getpagesize() int main(int ac, char **av) { int lc; char *msg; - void *child_stack; /* stack for child */ char buff[10]; int child_pid; @@ -104,10 +106,13 @@ int main(int ac, char **av) setup(); /* Allocate stack for child */ - if ((child_stack = (void *)malloc(CHILD_STACK_SIZE)) == NULL) { + if ((poison_start = (void *)malloc(POISON_SIZE+CHILD_STACK_SIZE)) == NULL) { tst_brkm(TBROK, cleanup, "Cannot allocate stack for child"); } + memset(poison_start, 0xDE, POISON_SIZE); + child_stack = poison_start + POISON_SIZE; + for (lc = 0; TEST_LOOPING(lc); lc++) { Tst_count = 0; @@ -154,7 +159,7 @@ int main(int ac, char **av) } - free(child_stack); + free(poison_start); cleanup(); tst_exit();