Messages in this thread | | | Date | Mon, 12 May 2008 11:56:43 +0800 | From | WANG Cong <> | Subject | Re: [Patch 7/9] fs/exec.c: fix wrong return value of prepare_binprm() |
| |
On Sat, May 10, 2008 at 08:31:05PM +0100, Al Viro wrote: >On Thu, May 08, 2008 at 09:52:32PM +0800, WANG Cong wrote: >> All prepare_binprm()'s callers assume that prepare_binprm() fails >> when it returns negative. However, prepare_binprm() most probably returns >> the return value of kernel_read(), which may return positive on failure! >> >> Thus this should be fixed. > >Since when does read return positive on failure?
When an EIO occurs, I think. For example,
retval = kernel_read(interpreter, interp_elf_ex->e_phoff, (char *)elf_phdata,size); error = -EIO; if (retval != size) { if (retval < 0) error = retval; goto out_close; }
-- Hi, I'm a .signature virus, please copy/paste me to help me spread all over the world.
| |