[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAK7LNAT772pZEV09nEYTLOyU_og73zPkKjjL54e8yor-tnnHtw@mail.gmail.com>
Date: Sat, 17 Feb 2024 21:24:17 +0900
From: Masahiro Yamada <masahiroy@...nel.org>
To: Max Kellermann <max.kellermann@...os.com>
Cc: nathan@...nel.org, nicolas@...sle.eu, linux-kbuild@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] scripts/mod/modpost: fix null pointer dereference
On Thu, Feb 15, 2024 at 11:13 PM Max Kellermann
<max.kellermann@...os.com> wrote:
>
> 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.
Can you describe the steps to reproduce it?
I set CONFIG_TEST_USER_COPY=m, but I could not
reproduce it.
> 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)
>
> Signed-off-by: Max Kellermann <max.kellermann@...os.com>
> ---
> scripts/mod/modpost.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
> index bf7c4b4b5ff4..6b37039c9e92 100644
> --- a/scripts/mod/modpost.c
> +++ b/scripts/mod/modpost.c
> @@ -1050,7 +1050,9 @@ static void default_mismatch_handler(const char *modname, struct elf_info *elf,
> sec_mismatch_count++;
>
> warn("%s: section mismatch in reference: %s+0x%x (section: %s) -> %s (section: %s)\n",
> - modname, fromsym, (unsigned int)(faddr - from->st_value), fromsec, tosym, tosec);
> + modname, fromsym,
> + (unsigned int)(faddr - (from ? from->st_value : 0)),
> + fromsec, tosym, tosec);
>
> if (mismatch->mismatch == EXTABLE_TO_NON_TEXT) {
> if (match(tosec, mismatch->bad_tosec))
> --
> 2.39.2
>
--
Best Regards
Masahiro Yamada
Powered by blists - more mailing lists