summaryrefslogtreecommitdiff
path: root/vm.c
diff options
context:
space:
mode:
Diffstat (limited to 'vm.c')
-rw-r--r--vm.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/vm.c b/vm.c
index 3f71b6a..7134cff 100644
--- a/vm.c
+++ b/vm.c
@@ -332,8 +332,10 @@ copyuvm(pde_t *pgdir, uint sz)
if((mem = kalloc()) == 0)
goto bad;
memmove(mem, (char*)P2V(pa), PGSIZE);
- if(mappages(d, (void*)i, PGSIZE, V2P(mem), flags) < 0)
+ if(mappages(d, (void*)i, PGSIZE, V2P(mem), flags) < 0) {
+ kfree(mem);
goto bad;
+ }
}
return d;