提交 90bab908 创建 作者: rsc's avatar rsc

exec sanity check

上级 f3685aa3
...@@ -62,7 +62,7 @@ exec(char *path, char **argv) ...@@ -62,7 +62,7 @@ exec(char *path, char **argv)
goto bad; goto bad;
if(ph.type != ELF_PROG_LOAD) if(ph.type != ELF_PROG_LOAD)
continue; continue;
if(ph.va + ph.memsz > sz) if(ph.va + ph.memsz < ph.va || ph.va + ph.memsz > sz || ph.memsz < ph.filesz)
goto bad; goto bad;
if(readi(ip, mem + ph.va, ph.offset, ph.filesz) != ph.filesz) if(readi(ip, mem + ph.va, ph.offset, ph.filesz) != ph.filesz)
goto bad; goto bad;
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论