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;