mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-01-01 13:58:06 +00:00
pahole: fix a Segmentation fault error
Command "pahole --btf_features=default -J" will segmentation fault when kernel-dbg package is also installed. $pahole --btf_features=default -J pahole[599]: segfault at 8 ip 00007f7c92d819e2 sp 00007f7c799febe0 error 6 in libdwarves.so.1.0.0[189e2,7f7c92d72000+1c000] likely on CPU 0 (core 0, socket 0) Code: 74 19 ff ff 48 39 dd 75 ef 4c 89 ef e8 67 19 ff ff 49 8b 7c 24 18 e8 8d 13 ff ff 49 8b 14 24 49 8b 44 24 08 4c 89 e7 45 31 e4 <48> 89 42 08 48 89 10 e8 42 19 ff ff e9 30 ff ff ff e8 58 0a ff ff Segmentation fault (core dumped) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
parent
85ea9beb49
commit
403b9a1717
|
|
@ -0,0 +1,54 @@
|
|||
From 6fa2b7de3e647e64c5d693aea7f3bacbfa964f53 Mon Sep 17 00:00:00 2001
|
||||
From: Ihor Solodari <ihor.solodrai@linux.dev>
|
||||
Date: Wed, 20 Aug 2025 09:00:03 +0100
|
||||
Subject: [PATCH] btf_encoder: Fix elf_functions cleanup on error
|
||||
|
||||
When elf_functions__new() errors out and jumps to
|
||||
elf_functions__delete(), pahole segfaults on attempt to list_del() the
|
||||
elf_functions instance from a list, to which it was never added.
|
||||
|
||||
Fix this by moving list_del() call out of elf_functions__delete().
|
||||
Remove from the list only on normal cleanup in
|
||||
elf_functions_list__clear().
|
||||
|
||||
v1:
|
||||
https://lore.kernel.org/dwarves/979a1ac4-21d3-4384-8ce4-d10f41887088@linux.dev/
|
||||
|
||||
Closes:
|
||||
https://lore.kernel.org/dwarves/24bcc853-533c-42ab-bc37-0c13e0baa217@windriver.com/
|
||||
Reported-by: Changqing Li <changqing.li@windriver.com>
|
||||
Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev>
|
||||
Reviewed-by: Arnaldo Carvalho de Melo <acme@redhat.com>
|
||||
Link: https://lore.kernel.org/dwarves/acef4a0e-7d3b-4e05-b3ca-1007580f2754@linux.dev/
|
||||
Signed-off-by: Alan Maguire <alan.maguire@oracle.com>
|
||||
|
||||
Upstream-Status: Backport [https://git.kernel.org/pub/scm/devel/pahole/pahole.git/commit/?h=next&id=fe6738f4b46b63dcdc5b15b252a014b3eaba16a4]
|
||||
|
||||
Signed-off-by: Changqing Li <changqing.li@windriver.com>
|
||||
---
|
||||
btf_encoder.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/btf_encoder.c b/btf_encoder.c
|
||||
index 511c1ea..2f8c6bb 100644
|
||||
--- a/btf_encoder.c
|
||||
+++ b/btf_encoder.c
|
||||
@@ -162,7 +162,6 @@ static inline void elf_functions__delete(struct elf_functions *funcs)
|
||||
free(funcs->entries[i].alias);
|
||||
free(funcs->entries);
|
||||
elf_symtab__delete(funcs->symtab);
|
||||
- list_del(&funcs->node);
|
||||
free(funcs);
|
||||
}
|
||||
|
||||
@@ -204,6 +203,7 @@ static inline void elf_functions_list__clear(struct list_head *elf_functions_lis
|
||||
|
||||
list_for_each_safe(pos, tmp, elf_functions_list) {
|
||||
funcs = list_entry(pos, struct elf_functions, node);
|
||||
+ list_del(&funcs->node);
|
||||
elf_functions__delete(funcs);
|
||||
}
|
||||
}
|
||||
--
|
||||
2.34.1
|
||||
|
||||
|
|
@ -11,7 +11,8 @@ COMPATIBLE_HOST = "(x86_64|i.86|arm|aarch64|riscv64|powerpc|powerpc64|mips64).*-
|
|||
|
||||
SRCREV = "b9cc7963051b2099795129450f9b70c81950d02f"
|
||||
SRC_URI = "git://git.kernel.org/pub/scm/devel/pahole/pahole.git;branch=master \
|
||||
file://0001-Use-usr-bin-env-python3-instead-of-just-usr-bin-pyth.patch"
|
||||
file://0001-Use-usr-bin-env-python3-instead-of-just-usr-bin-pyth.patch \
|
||||
file://0001-btf_encoder-Fix-elf_functions-cleanup-on-error.patch"
|
||||
|
||||
|
||||
inherit cmake pkgconfig
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user