From: MikeCAT Date: Sat, 19 Dec 2015 15:04:52 +0000 (+0900) Subject: add check for wrapping of address + size in exec() X-Git-Url: https://git.devinivas.org/?a=commitdiff_plain;h=5625ae49731d25e85bcaf8c8cc8f843969588981;p=cs3210-lab1.git add check for wrapping of address + size in exec() --- diff --git a/exec.c b/exec.c index e5d1816..d56ee1d 100644 --- a/exec.c +++ b/exec.c @@ -44,6 +44,8 @@ exec(char *path, char **argv) continue; if(ph.memsz < ph.filesz) goto bad; + if(ph.vaddr + ph.memsz < ph.vaddr) + goto bad; if((sz = allocuvm(pgdir, sz, ph.vaddr + ph.memsz)) == 0) goto bad; if(ph.vaddr % PGSIZE != 0)