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
c2port
cb710
eeprom
ibmasm
iwmc3200top
sgi-gru
sgi-xp
Kconfig -rw-r--r-- 13.6 KB
Makefile -rw-r--r-- 1.3 KB
ad525x_dpot-i2c.c -rw-r--r-- 2.9 KB
ad525x_dpot-spi.c -rw-r--r-- 3.8 KB
ad525x_dpot.c -rw-r--r-- 18.0 KB
ad525x_dpot.h -rw-r--r-- 7.3 KB
arm-charlcd.c -rw-r--r-- 9.3 KB
atmel-ssc.c -rw-r--r-- 3.5 KB
atmel_pwm.c -rw-r--r-- 9.2 KB
atmel_tclib.c -rw-r--r-- 3.6 KB
bh1780gli.c -rw-r--r-- 6.1 KB
bmp085.c -rw-r--r-- 12.8 KB
cs5535-mfgpt.c -rw-r--r-- 10.1 KB
ds1682.c -rw-r--r-- 7.0 KB
enclosure.c -rw-r--r-- 15.5 KB
ep93xx_pwm.c -rw-r--r-- 9.5 KB
hmc6352.c -rw-r--r-- 4.2 KB
hpilo.c -rw-r--r-- 20.8 KB
hpilo.h -rw-r--r-- 5.6 KB
ics932s401.c -rw-r--r-- 13.4 KB
ioc4.c -rw-r--r-- 14.6 KB
isl29003.c -rw-r--r-- 11.6 KB
kgdbts.c -rw-r--r-- 28.9 KB
lkdtm.c -rw-r--r-- 14.8 KB
phantom.c -rw-r--r-- 13.1 KB
ti_dac7512.c -rw-r--r-- 2.5 KB
tifm_7xx1.c -rw-r--r-- 11.1 KB
tifm_core.c -rw-r--r-- 8.2 KB
tsl2550.c -rw-r--r-- 10.7 KB
vmware_balloon.c -rw-r--r-- 21.0 KB

back to top