mm-search_binary_handler-mem-limit-fix is horribly broken

From: Jeff Dike
Date: Wed Jan 31 2007 - 12:45:11 EST


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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/