It works on i386 only by accident, and doesn't work at all with UML.
start_thread, which is called from inside the set_fs(USER_DS) -
set_fs(oldfs) does set_fs(USER_DS). That is then blown away by the
set_fs(oldfs).
A one-line fix might be
Index: linux-2.6.17/fs/exec.c
===================================================================
--- linux-2.6.17.orig/fs/exec.c 2007-01-31 12:10:08.000000000 -0500
+++ linux-2.6.17/fs/exec.c 2007-01-31 12:41:15.000000000 -0500
@@ -1079,6 +1079,7 @@ int search_binary_handler(struct linux_b
continue;
read_unlock(&binfmt_lock);
retval = fn(bprm, regs);
+ oldfs = get_fs();
if (retval >= 0) {
put_binfmt(fmt);
allow_write_access(bprm->file);
but this seems like it's pasting one kludge on top of another.
Jeff
--
Work email - jdike at linux dot intel dot com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]