]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
objtool: Fix segfault in ignore_unreachable_insn()
authorJosh Poimboeuf <jpoimboe@kernel.org>
Fri, 28 Mar 2025 05:04:21 +0000 (22:04 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 10 Apr 2025 12:37:35 +0000 (14:37 +0200)
[ Upstream commit 69d41d6dafff0967565b971d950bd10443e4076c ]

Check 'prev_insn' before dereferencing it.

Fixes: bd841d6154f5 ("objtool: Fix CONFIG_UBSAN_TRAP unreachable warnings")
Reported-by: Arnd Bergmann <arnd@arndb.de>
Reported-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/5df4ff89c9e4b9e788b77b0531234ffa7ba03e9e.1743136205.git.jpoimboe@kernel.org
Closes: https://lore.kernel.org/d86b4cc6-0b97-4095-8793-a7384410b8ab@app.fastmail.com
Closes: https://lore.kernel.org/Z-V_rruKY0-36pqA@gmail.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
tools/objtool/check.c

index 5824aa68ff9619e6849563368aa43b0c197d20c4..36412f1881e61c1c8fba3e2238ce91255d4ec5a6 100644 (file)
@@ -4089,7 +4089,7 @@ static bool ignore_unreachable_insn(struct objtool_file *file, struct instructio
         * It may also insert a UD2 after calling a __noreturn function.
         */
        prev_insn = prev_insn_same_sec(file, insn);
-       if (prev_insn->dead_end &&
+       if (prev_insn && prev_insn->dead_end &&
            (insn->type == INSN_BUG ||
             (insn->type == INSN_JUMP_UNCONDITIONAL &&
              insn->jump_dest && insn->jump_dest->type == INSN_BUG)))