Re: [PATCH] 2.4: Fix steal_locks race

From: Andreas Gruenbacher
Date: Fri Aug 08 2003 - 22:21:13 EST


On Sat, 9 Aug 2003, Herbert Xu wrote:

> On Sat, Aug 09, 2003 at 04:59:03AM +0200, Andreas Gruenbacher wrote:
> >
> > @@ -714,18 +715,16 @@ static int load_elf_binary(struct linux_
> > elf_entry = load_elf_interp(&interp_elf_ex,
> > interpreter,
> > &interp_load_addr);
> > -
> > - allow_write_access(interpreter);
> > - fput(interpreter);
> > - kfree(elf_interpreter);
> > -
> > if (BAD_ADDR(elf_entry)) {
> > printk(KERN_ERR "Unable to load interpreter\n");
> > - kfree(elf_phdata);
> > send_sig(SIGSEGV, current, 0);
> > retval = -ENOEXEC; /* Nobody gets to see this, but.. */
> > - goto out;
> > + goto out_free_dentry;
> > }
> > +
> > + allow_write_access(interpreter);
> > + fput(interpreter);
> > + kfree(elf_interpreter);
> > }
>
> This looks bad since you're past the point of no return.

This is an equivalence transformation except for the explicit
sys_close(elf_exec_fileno) in the unwind code, which would eventually
happen, anyway.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/