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
basic
coccinelle
dtc
genksyms
kconfig
ksymoops
mod
package
rt-tester
selinux
tracing
.gitignore -rw-r--r-- 75 bytes
Kbuild.include -rw-r--r-- 9.5 KB
Lindent -rwxr-xr-x 460 bytes
Makefile -rw-r--r-- 934 bytes
Makefile.build -rw-r--r-- 12.1 KB
Makefile.clean -rw-r--r-- 3.2 KB
Makefile.fwinst -rw-r--r-- 2.0 KB
Makefile.headersinst -rw-r--r-- 3.2 KB
Makefile.help -rw-r--r-- 68 bytes
Makefile.host -rw-r--r-- 6.5 KB
Makefile.lib -rw-r--r-- 9.1 KB
Makefile.modbuiltin -rw-r--r-- 1.8 KB
Makefile.modinst -rw-r--r-- 1.0 KB
Makefile.modpost -rw-r--r-- 5.1 KB
bin2c.c -rw-r--r-- 702 bytes
bloat-o-meter -rwxr-xr-x 1.7 KB
bootgraph.pl -rw-r--r-- 5.6 KB
checkincludes.pl -rwxr-xr-x 1.8 KB
checkkconfigsymbols.sh -rwxr-xr-x 1.8 KB
checkpatch.pl -rwxr-xr-x 75.5 KB
checkstack.pl -rwxr-xr-x 5.2 KB
checksyscalls.sh -rwxr-xr-x 5.5 KB
checkversion.pl -rwxr-xr-x 1.8 KB
cleanfile -rwxr-xr-x 3.4 KB
cleanpatch -rwxr-xr-x 5.0 KB
coccicheck -rwxr-xr-x 2.0 KB
config -rwxr-xr-x 2.6 KB
conmakehash.c -rw-r--r-- 6.0 KB
decodecode -rwxr-xr-x 1.9 KB
diffconfig -rwxr-xr-x 3.6 KB
export_report.pl -rw-r--r-- 4.2 KB
extract-ikconfig -rwxr-xr-x 1.3 KB
gcc-version.sh -rw-r--r-- 819 bytes
gcc-x86_32-has-stack-protector.sh -rw-r--r-- 183 bytes
gcc-x86_64-has-stack-protector.sh -rw-r--r-- 199 bytes
gen_initramfs_list.sh -rw-r--r-- 7.1 KB
get_maintainer.pl -rwxr-xr-x 34.3 KB
gfp-translate -rw-r--r-- 1.5 KB
headerdep.pl -rwxr-xr-x 3.5 KB
headers.sh -rwxr-xr-x 512 bytes
headers_check.pl -rw-r--r-- 2.7 KB
headers_install.pl -rw-r--r-- 1.5 KB
kallsyms.c -rw-r--r-- 15.2 KB
kernel-doc -rwxr-xr-x 61.1 KB
makelst -rwxr-xr-x 773 bytes
markup_oops.pl -rw-r--r-- 8.1 KB
mkcompile_h -rwxr-xr-x 2.5 KB
mkmakefile -rw-r--r-- 1.1 KB
mksysmap -rw-r--r-- 1.3 KB
mkuboot.sh -rwxr-xr-x 379 bytes
mkversion -rw-r--r-- 74 bytes
module-common.lds -rw-r--r-- 210 bytes
namespace.pl -rwxr-xr-x 13.0 KB
patch-kernel -rwxr-xr-x 9.8 KB
pnmtologo.c -rw-r--r-- 11.7 KB
profile2linkerlist.pl -rw-r--r-- 375 bytes
recordmcount.pl -rwxr-xr-x 17.2 KB
setlocalversion -rwxr-xr-x 3.7 KB
show_delta -rwxr-xr-x 3.0 KB
tags.sh -rwxr-xr-x 4.6 KB
unifdef.c -rw-r--r-- 31.6 KB
ver_linux -rwxr-xr-x 3.1 KB

back to top