diff options
| author | Changqing Li <changqing.li@windriver.com> | 2025-09-17 13:34:53 +0800 |
|---|---|---|
| committer | Khem Raj <raj.khem@gmail.com> | 2025-09-17 08:57:42 -0700 |
| commit | 403b9a1717e6309f523049abc322bbb30069b10a (patch) | |
| tree | 56c9d03169e94e37506a61bee818ccbb13c4f231 | |
| parent | 85ea9beb4978e71de7addc1a9f7869d4690931d0 (diff) | |
| download | meta-openembedded-403b9a1717e6309f523049abc322bbb30069b10a.tar.gz | |
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>
| -rw-r--r-- | meta-oe/recipes-devtools/pahole/files/0001-btf_encoder-Fix-elf_functions-cleanup-on-error.patch | 54 | ||||
| -rw-r--r-- | meta-oe/recipes-devtools/pahole/pahole_1.29.bb | 3 |
2 files changed, 56 insertions, 1 deletions
diff --git a/meta-oe/recipes-devtools/pahole/files/0001-btf_encoder-Fix-elf_functions-cleanup-on-error.patch b/meta-oe/recipes-devtools/pahole/files/0001-btf_encoder-Fix-elf_functions-cleanup-on-error.patch new file mode 100644 index 0000000000..dad5a9646a --- /dev/null +++ b/meta-oe/recipes-devtools/pahole/files/0001-btf_encoder-Fix-elf_functions-cleanup-on-error.patch | |||
| @@ -0,0 +1,54 @@ | |||
| 1 | From 6fa2b7de3e647e64c5d693aea7f3bacbfa964f53 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Ihor Solodari <ihor.solodrai@linux.dev> | ||
| 3 | Date: Wed, 20 Aug 2025 09:00:03 +0100 | ||
| 4 | Subject: [PATCH] btf_encoder: Fix elf_functions cleanup on error | ||
| 5 | |||
| 6 | When elf_functions__new() errors out and jumps to | ||
| 7 | elf_functions__delete(), pahole segfaults on attempt to list_del() the | ||
| 8 | elf_functions instance from a list, to which it was never added. | ||
| 9 | |||
| 10 | Fix this by moving list_del() call out of elf_functions__delete(). | ||
| 11 | Remove from the list only on normal cleanup in | ||
| 12 | elf_functions_list__clear(). | ||
| 13 | |||
| 14 | v1: | ||
| 15 | https://lore.kernel.org/dwarves/979a1ac4-21d3-4384-8ce4-d10f41887088@linux.dev/ | ||
| 16 | |||
| 17 | Closes: | ||
| 18 | https://lore.kernel.org/dwarves/24bcc853-533c-42ab-bc37-0c13e0baa217@windriver.com/ | ||
| 19 | Reported-by: Changqing Li <changqing.li@windriver.com> | ||
| 20 | Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev> | ||
| 21 | Reviewed-by: Arnaldo Carvalho de Melo <acme@redhat.com> | ||
| 22 | Link: https://lore.kernel.org/dwarves/acef4a0e-7d3b-4e05-b3ca-1007580f2754@linux.dev/ | ||
| 23 | Signed-off-by: Alan Maguire <alan.maguire@oracle.com> | ||
| 24 | |||
| 25 | Upstream-Status: Backport [https://git.kernel.org/pub/scm/devel/pahole/pahole.git/commit/?h=next&id=fe6738f4b46b63dcdc5b15b252a014b3eaba16a4] | ||
| 26 | |||
| 27 | Signed-off-by: Changqing Li <changqing.li@windriver.com> | ||
| 28 | --- | ||
| 29 | btf_encoder.c | 2 +- | ||
| 30 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 31 | |||
| 32 | diff --git a/btf_encoder.c b/btf_encoder.c | ||
| 33 | index 511c1ea..2f8c6bb 100644 | ||
| 34 | --- a/btf_encoder.c | ||
| 35 | +++ b/btf_encoder.c | ||
| 36 | @@ -162,7 +162,6 @@ static inline void elf_functions__delete(struct elf_functions *funcs) | ||
| 37 | free(funcs->entries[i].alias); | ||
| 38 | free(funcs->entries); | ||
| 39 | elf_symtab__delete(funcs->symtab); | ||
| 40 | - list_del(&funcs->node); | ||
| 41 | free(funcs); | ||
| 42 | } | ||
| 43 | |||
| 44 | @@ -204,6 +203,7 @@ static inline void elf_functions_list__clear(struct list_head *elf_functions_lis | ||
| 45 | |||
| 46 | list_for_each_safe(pos, tmp, elf_functions_list) { | ||
| 47 | funcs = list_entry(pos, struct elf_functions, node); | ||
| 48 | + list_del(&funcs->node); | ||
| 49 | elf_functions__delete(funcs); | ||
| 50 | } | ||
| 51 | } | ||
| 52 | -- | ||
| 53 | 2.34.1 | ||
| 54 | |||
diff --git a/meta-oe/recipes-devtools/pahole/pahole_1.29.bb b/meta-oe/recipes-devtools/pahole/pahole_1.29.bb index aca915bf32..4f2737767b 100644 --- a/meta-oe/recipes-devtools/pahole/pahole_1.29.bb +++ b/meta-oe/recipes-devtools/pahole/pahole_1.29.bb | |||
| @@ -11,7 +11,8 @@ COMPATIBLE_HOST = "(x86_64|i.86|arm|aarch64|riscv64|powerpc|powerpc64|mips64).*- | |||
| 11 | 11 | ||
| 12 | SRCREV = "b9cc7963051b2099795129450f9b70c81950d02f" | 12 | SRCREV = "b9cc7963051b2099795129450f9b70c81950d02f" |
| 13 | SRC_URI = "git://git.kernel.org/pub/scm/devel/pahole/pahole.git;branch=master \ | 13 | SRC_URI = "git://git.kernel.org/pub/scm/devel/pahole/pahole.git;branch=master \ |
| 14 | file://0001-Use-usr-bin-env-python3-instead-of-just-usr-bin-pyth.patch" | 14 | file://0001-Use-usr-bin-env-python3-instead-of-just-usr-bin-pyth.patch \ |
| 15 | file://0001-btf_encoder-Fix-elf_functions-cleanup-on-error.patch" | ||
| 15 | 16 | ||
| 16 | 17 | ||
| 17 | inherit cmake pkgconfig | 18 | inherit cmake pkgconfig |
