commit dae9b0d48a94683c0a49e88e4b739482788d7175
parent 19333efb9eb634f17bea41d0cec8ee28c595cce8
Author: rsc <rsc>
Date: Sun, 31 May 2009 00:31:20 +0000
missed this file in last checkin
Diffstat:
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/sysproc.c b/sysproc.c
@@ -1,4 +1,5 @@
#include "types.h"
+#include "x86.h"
#include "defs.h"
#include "param.h"
#include "mmu.h"
@@ -13,6 +14,9 @@ sys_fork(void)
if((np = copyproc(cp)) == 0)
return -1;
pid = np->pid;
+
+ // Clear %eax so that fork returns 0 in the child.
+ np->tf->eax = 0;
np->state = RUNNABLE;
return pid;
}
@@ -54,7 +58,8 @@ sys_sbrk(void)
if(argint(0, &n) < 0)
return -1;
- if((addr = growproc(n)) < 0)
+ addr = cp->sz;
+ if(growproc(n) < 0)
return -1;
return addr;
}