Commit 7ff985ed authored by Christophe Leroy's avatar Christophe Leroy Committed by zhaoxiaoqiang11
Browse files

objtool: Fix SEGFAULT

stable inclusion
from stable-v5.10.163
commit 0af0e115ff59d638f45416a004cdd8edb38db40c
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I7PJ9N

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=0af0e115ff59d638f45416a004cdd8edb38db40c



----------------------------------------------------

[ Upstream commit efb11fdb ]

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

Tested-by: default avatarNaveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Reviewed-by: default avatarNaveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Acked-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20221114175754.1131267-9-sv@linux.ibm.com


Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarzhaoxiaoqiang11 <zhaoxiaoqiang11@jd.com>
parent 8122a583
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -196,7 +196,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(file, func, insn) {