Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

modpost: fix null pointer dereference

If the find_fromsym() call fails and returns NULL, the warn() call
will dereference this NULL pointer and cause the program to crash.

This happened when I tried to build with "test_user_copy" module.
With this fix, it prints lots of warnings like this:

WARNING: modpost: lib/test_user_copy: section mismatch in reference: (unknown)+0x4 (section: .text.fixup) -> (unknown) (section: .init.text)

masahiroy@kernel.org:
The issue is reproduced with ARCH=arm allnoconfig + CONFIG_MODULES=y +
CONFIG_RUNTIME_TESTING_MENU=y + CONFIG_TEST_USER_COPY=m

Signed-off-by: Max Kellermann <max.kellermann@ionos.com>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>

authored by

Max Kellermann and committed by
Masahiro Yamada
23dfd914 44929bfa

+3 -1
+3 -1
scripts/mod/modpost.c
··· 1050 1050 sec_mismatch_count++; 1051 1051 1052 1052 warn("%s: section mismatch in reference: %s+0x%x (section: %s) -> %s (section: %s)\n", 1053 - modname, fromsym, (unsigned int)(faddr - from->st_value), fromsec, tosym, tosec); 1053 + modname, fromsym, 1054 + (unsigned int)(faddr - (from ? from->st_value : 0)), 1055 + fromsec, tosym, tosec); 1054 1056 1055 1057 if (mismatch->mismatch == EXTABLE_TO_NON_TEXT) { 1056 1058 if (match(tosec, mismatch->bad_tosec))