summaryrefslogtreecommitdiff
path: root/proc.c
diff options
context:
space:
mode:
authorrtm <rtm>2006-07-18 19:22:37 +0000
committerrtm <rtm>2006-07-18 19:22:37 +0000
commitbd228a81566befa6154807d327d8c873f6a76c79 (patch)
tree5e514950688f29a3150ec9c43c478c8208435c87 /proc.c
parent0dd4253747eef56d0f1539fac7d62234f6af5f51 (diff)
downloadxv6-labs-bd228a81566befa6154807d327d8c873f6a76c79.tar.gz
xv6-labs-bd228a81566befa6154807d327d8c873f6a76c79.tar.bz2
xv6-labs-bd228a81566befa6154807d327d8c873f6a76c79.zip
prevent longjmp / forkret from writing over tf->edi
Diffstat (limited to 'proc.c')
-rw-r--r--proc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/proc.c b/proc.c
index b3f352b..573da18 100644
--- a/proc.c
+++ b/proc.c
@@ -109,7 +109,7 @@ copyproc(struct proc* p)
// Set up new jmpbuf to start executing at forkret (see below).
memset(&np->jmpbuf, 0, sizeof np->jmpbuf);
np->jmpbuf.eip = (uint)forkret;
- np->jmpbuf.esp = (uint)np->tf;
+ np->jmpbuf.esp = (uint)np->tf - 4;
// Copy file descriptors
for(i = 0; i < NOFILE; i++){