X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fuserprog%2Fpagedir.c;fp=src%2Fuserprog%2Fpagedir.c;h=937f433da030505e701d00f7a9bb8a15feb49dcb;hb=c2e63e6e7f14d2ce25791aeff2ef592a4cd51663;hp=fa8f244d88220a954e43ebc880e1140d242643f4;hpb=155aff5bab5125c4b6f3988284966abcf74fa0f2;p=pintos-anon diff --git a/src/userprog/pagedir.c b/src/userprog/pagedir.c index fa8f244..937f433 100644 --- a/src/userprog/pagedir.c +++ b/src/userprog/pagedir.c @@ -121,7 +121,9 @@ void * pagedir_get_page (uint32_t *pd, const void *uaddr) { uint32_t *pte = lookup_page (pd, (void *) uaddr, false); - return pte != NULL && *pte != 0 ? pte_get_page (*pte) : NULL; + return (pte != NULL && *pte != 0 + ? (uint8_t *) pte_get_page (*pte) + pg_ofs (uaddr) + : NULL); } /* Clears any mapping for user virtual address UPAGE in page