From 5625ae49731d25e85bcaf8c8cc8f843969588981 Mon Sep 17 00:00:00 2001 From: MikeCAT Date: Sun, 20 Dec 2015 00:04:52 +0900 Subject: [PATCH] add check for wrapping of address + size in exec() --- exec.c | 2 ++ 1 file changed, 2 insertions(+) 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)