Revision 9aea5a65aa7a1af9a4236dfaeb0088f1624f9919 authored by Roland McGrath on 08 September 2010, 02:37:06 UTC, committed by Linus Torvalds on 10 September 2010, 15:10:26 UTC
An execve with a very large total of argument/environment strings
can take a really long time in the execve system call.  It runs
uninterruptibly to count and copy all the strings.  This change
makes it abort the exec quickly if sent a SIGKILL.

Note that this is the conservative change, to interrupt only for
SIGKILL, by using fatal_signal_pending().  It would be perfectly
correct semantics to let any signal interrupt the string-copying in
execve, i.e. use signal_pending() instead of fatal_signal_pending().
We'll save that change for later, since it could have user-visible
consequences, such as having a timer set too quickly make it so that
an execve can never complete, though it always happened to work before.

Signed-off-by: Roland McGrath <roland@redhat.com>
Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 7993bc1
History
File Mode Size
Kconfig -rw-r--r-- 3.3 KB
Makefile -rw-r--r-- 1.1 KB
README -rw-r--r-- 7.9 KB
bitmap.c -rw-r--r-- 37.0 KB
dir.c -rw-r--r-- 8.8 KB
do_balan.c -rw-r--r-- 57.0 KB
file.c -rw-r--r-- 10.3 KB
fix_node.c -rw-r--r-- 77.2 KB
hashes.c -rw-r--r-- 3.6 KB
ibalance.c -rw-r--r-- 35.2 KB
inode.c -rw-r--r-- 92.0 KB
ioctl.c -rw-r--r-- 5.5 KB
item_ops.c -rw-r--r-- 18.7 KB
journal.c -rw-r--r-- 124.1 KB
lbalance.c -rw-r--r-- 41.4 KB
lock.c -rw-r--r-- 2.6 KB
namei.c -rw-r--r-- 44.1 KB
objectid.c -rw-r--r-- 6.9 KB
prints.c -rw-r--r-- 20.7 KB
procfs.c -rw-r--r-- 14.7 KB
resize.c -rw-r--r-- 6.2 KB
stree.c -rw-r--r-- 64.3 KB
super.c -rw-r--r-- 62.3 KB
tail_conversion.c -rw-r--r-- 9.1 KB
xattr.c -rw-r--r-- 26.6 KB
xattr_acl.c -rw-r--r-- 12.7 KB
xattr_security.c -rw-r--r-- 2.9 KB
xattr_trusted.c -rw-r--r-- 1.4 KB
xattr_user.c -rw-r--r-- 1.3 KB

README

back to top