]> Devi Nivas Git - cs3210-lab1.git/commitdiff
add check for wrapping of address + size in exec()
authorMikeCAT <mikecat@users.noreply.github.com>
Sat, 19 Dec 2015 15:04:52 +0000 (00:04 +0900)
committerFrans Kaashoek <kaashoek@mit.edu>
Thu, 25 Aug 2016 11:09:46 +0000 (07:09 -0400)
exec.c

diff --git a/exec.c b/exec.c
index e5d1816982499ade7be1cf796afeb24b82c5bc01..d56ee1d5f8f9733a051a76b0e74ebb36a867ff2e 100644 (file)
--- 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)