mirror of https://gitee.com/openkylin/linux.git
exec: do not retry load_binary method if CONFIG_MODULES=n
If CONFIG_MODULES=n, it makes no sense to retry the list of binary formats handler because the list will not be modified by request_module(). Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> Cc: Richard Weinberger <richard@nod.at> Cc: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
912193521b
commit
b4edf8bd06
|
@ -1430,9 +1430,9 @@ int search_binary_handler(struct linux_binprm *bprm,struct pt_regs *regs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
read_unlock(&binfmt_lock);
|
read_unlock(&binfmt_lock);
|
||||||
|
#ifdef CONFIG_MODULES
|
||||||
if (retval != -ENOEXEC || bprm->mm == NULL) {
|
if (retval != -ENOEXEC || bprm->mm == NULL) {
|
||||||
break;
|
break;
|
||||||
#ifdef CONFIG_MODULES
|
|
||||||
} else {
|
} else {
|
||||||
#define printable(c) (((c)=='\t') || ((c)=='\n') || (0x20<=(c) && (c)<=0x7e))
|
#define printable(c) (((c)=='\t') || ((c)=='\n') || (0x20<=(c) && (c)<=0x7e))
|
||||||
if (printable(bprm->buf[0]) &&
|
if (printable(bprm->buf[0]) &&
|
||||||
|
@ -1443,8 +1443,10 @@ int search_binary_handler(struct linux_binprm *bprm,struct pt_regs *regs)
|
||||||
if (try)
|
if (try)
|
||||||
break; /* -ENOEXEC */
|
break; /* -ENOEXEC */
|
||||||
request_module("binfmt-%04x", *(unsigned short *)(&bprm->buf[2]));
|
request_module("binfmt-%04x", *(unsigned short *)(&bprm->buf[2]));
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue