diff options
author | Robert Morris <[email protected]> | 2019-09-20 11:35:27 -0400 |
---|---|---|
committer | Robert Morris <[email protected]> | 2019-09-20 11:35:27 -0400 |
commit | 4de161f973aa06d5f08de1063d3fc9c22e4547e7 (patch) | |
tree | bf6ba51ef64ae3e255306de4de0dd609e819fbd6 /kernel/proc.c | |
parent | ca30cac702157d0d3a2c89e4436f0bff303a6e0a (diff) | |
download | xv6-labs-4de161f973aa06d5f08de1063d3fc9c22e4547e7.tar.gz xv6-labs-4de161f973aa06d5f08de1063d3fc9c22e4547e7.tar.bz2 xv6-labs-4de161f973aa06d5f08de1063d3fc9c22e4547e7.zip |
don't panic if a program frees all its memory with sbrk().
if a program sbrk()'s to a non-page-boundary, don't free that page.
corresponding usertests.
Diffstat (limited to 'kernel/proc.c')
-rw-r--r-- | kernel/proc.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/kernel/proc.c b/kernel/proc.c index 786e5c3..0d91a59 100644 --- a/kernel/proc.c +++ b/kernel/proc.c @@ -232,9 +232,7 @@ growproc(int n) return -1; } } else if(n < 0){ - if((sz = uvmdealloc(p->pagetable, sz, sz + n)) == 0) { - return -1; - } + sz = uvmdealloc(p->pagetable, sz, sz + n); } p->sz = sz; return 0; |