From: Cody Cutler Date: Mon, 26 Sep 2016 16:21:01 +0000 (-0400) Subject: fix possible memory leak in deallocuvm X-Git-Url: https://git.devinivas.org/?a=commitdiff_plain;h=ffe444926e4685301c35b17b254ef2067560f401;p=cs3210-lab1.git fix possible memory leak in deallocuvm when a zero PDE is encountered while searching for present PTEs to free, resume searching at first entry of the next page table instead of the current entry of the next page table. --- diff --git a/vm.c b/vm.c index d9aaa7e..764512c 100644 --- a/vm.c +++ b/vm.c @@ -266,7 +266,7 @@ deallocuvm(pde_t *pgdir, uint oldsz, uint newsz) for(; a < oldsz; a += PGSIZE){ pte = walkpgdir(pgdir, (char*)a, 0); if(!pte) - a += (NPTENTRIES - 1) * PGSIZE; + a = PGADDR(PDX(a) + 1, 0, 0) - PGSIZE; else if((*pte & PTE_P) != 0){ pa = PTE_ADDR(*pte); if(pa == 0)