]> git.baikalelectronics.ru Git - kernel.git/commitdiff
objtool: Fix SEGFAULT
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Mon, 14 Nov 2022 17:57:46 +0000 (23:27 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 18 Jan 2023 10:41:43 +0000 (11:41 +0100)
[ Upstream commit 3a8a3f29c21de4304e73d48209d3b5ce29b2b8f8 ]

find_insn() will return NULL in case of failure. Check insn in order
to avoid a kernel Oops for NULL pointer dereference.

Tested-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Reviewed-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Acked-by: Josh Poimboeuf <jpoimboe@kernel.org>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20221114175754.1131267-9-sv@linux.ibm.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
tools/objtool/check.c

index bae6b261481db0ba9322321b1a06c034a676187c..ccf5580442d29cada6f7ac3884c945c6c400a894 100644 (file)
@@ -162,7 +162,7 @@ static bool __dead_end_function(struct objtool_file *file, struct symbol *func,
                return false;
 
        insn = find_insn(file, func->sec, func->offset);
-       if (!insn->func)
+       if (!insn || !insn->func)
                return false;
 
        func_for_each_insn_all(file, func, insn) {