summaryrefslogtreecommitdiffstats
path: root/src/tests/userprog/sc-bad-sp.c
blob: 39cce84ebb9d70ce2536f480a4d7142585ee20ea (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/* Invokes a system call with the stack pointer (%esp) set to a
   bad address.  The process must be terminated with -1 exit
   code. 

   For Project 3: The bad address lies approximately 64MB below
   the code segment, so there is no ambiguity that this attempt
   must be rejected even after stack growth is implemented.
   Moreover, a good stack growth heuristics should probably not
   grow the stack for the purpose of reading the system call
   number and arguments. */

#include "tests/lib.h"
#include "tests/main.h"

void
test_main (void) 
{
  asm volatile ("movl $.-(64*1024*1024), %esp; int $0x30");
  fail ("should have called exit(-1)");
}