linux/scripts
Mike Frysinger 3a5dd791ab modpost: fix segfault in sym_is() with prefixed arches
The sym_is() compares a symbol in an attempt to automatically skip symbol
prefixes.  It does this first by searching the real symbol with the normal
unprefixed symbol.  But then it uses the length of the original symbol to
check the end of the substring instead of the length of the symbol it is
looking for.  On non-prefixed arches, this is effectively the same thing,
so there is no problem.  On prefixed-arches, since this is exceeds by just
one byte, a crash is rare and it is usually a NUL byte anyways.  But every
once in a blue moon, you get the right page alignment and it segfaults.

For example, on the Blackfin arch, sym_is() will be called with the real
symbol "___mod_usb_device_table" as "symbol" when looking for the normal
symbol "__mod_usb_device_table" as "name".  The substring will thus return
one byte into "symbol" and store it into "match".  But then "match" will
be indexed with the length of "symbol" instead of "name" and so we will
exceed the storage.  i.e. the code ends up doing:
	char foo[] = "abc"; return foo[strlen(foo)+1] == '\0';

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-01-17 11:00:53 -08:00
..
basic
dtc
genksyms genksyms: properly consider EXPORT_UNUSED_SYMBOL{,_GPL}() 2009-12-12 13:08:16 +01:00
kconfig kbuild: generate modules.builtin 2009-12-12 13:08:16 +01:00
ksymoops
mod modpost: fix segfault in sym_is() with prefixed arches 2010-01-17 11:00:53 -08:00
package
rt-tester
selinux
tracing
.gitignore
Kbuild.include kbuild: generate modules.builtin 2009-12-12 13:08:16 +01:00
Lindent
Makefile
Makefile.build MIPS: Tracing: Add an endian argument to scripts/recordmcount.pl 2009-12-17 01:57:22 +00:00
Makefile.clean
Makefile.fwinst
Makefile.headersinst
Makefile.host
Makefile.lib kbuild: really fix bzImage build with non-bash sh 2010-01-13 13:27:24 +01:00
Makefile.modbuiltin kbuild: generate modules.builtin 2009-12-12 13:08:16 +01:00
Makefile.modinst
Makefile.modpost
bin2c.c
binoffset.c
bloat-o-meter
bootgraph.pl
checkincludes.pl
checkkconfigsymbols.sh
checkpatch.pl remove my email address from checkpatch. 2010-01-12 20:56:52 -08:00
checkstack.pl
checksyscalls.sh
checkversion.pl
cleanfile
cleanpatch
config
conmakehash.c
decodecode
diffconfig
export_report.pl
extract-ikconfig
gcc-version.sh
gcc-x86_32-has-stack-protector.sh
gcc-x86_64-has-stack-protector.sh
gen_initramfs_list.sh
get_maintainer.pl scripts/get_maintainer.pl: fix file exclusion X: logic 2010-01-11 09:34:05 -08:00
gfp-translate
headerdep.pl
headers.sh
headers_check.pl
headers_install.pl
kallsyms.c
kernel-doc
makelst
markup_oops.pl markup_oops.pl: fix error with x86 2010-01-16 12:15:37 -08:00
mkcompile_h
mkmakefile
mksysmap
mkuboot.sh
mkversion
module-common.lds
namespace.pl
patch-kernel
pnmtologo.c
profile2linkerlist.pl
recordmcount.pl tracing/x86: Derive arch from bits argument in recordmcount.pl 2010-01-11 23:49:35 -05:00
setlocalversion
show_delta
tags.sh
unifdef.c
ver_linux