summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJiri Olsa <jolsa@kernel.org>2024-11-04 18:52:53 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-12-14 19:50:37 +0100
commit659191444d993e4fefc89357af125e64e0fcd160 (patch)
treed2f2755e90a6505d2bfee824fee7b50e0c7bf139 /lib
parent7a514335cf413f8de4bf62a7d6c5595a3cff1940 (diff)
downloadlinux-659191444d993e4fefc89357af125e64e0fcd160.tar.gz
linux-659191444d993e4fefc89357af125e64e0fcd160.tar.bz2
linux-659191444d993e4fefc89357af125e64e0fcd160.zip
lib/buildid: Fix build ID parsing logic
The parse_build_id_buf does not account Elf32_Nhdr header size when getting the build id data pointer and returns wrong build id data as result. This is problem only stable trees that merged 8fa2b6817a95 fix, the upstream build id code was refactored and returns proper build id. Acked-by: Andrii Nakryiko <andrii@kernel.org> Fixes: 8fa2b6817a95 ("lib/buildid: harden build ID parsing logic") Signed-off-by: Jiri Olsa <jolsa@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/buildid.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/buildid.c b/lib/buildid.c
index e41fb0ee405f..cc5da016b235 100644
--- a/lib/buildid.c
+++ b/lib/buildid.c
@@ -40,7 +40,7 @@ static int parse_build_id_buf(unsigned char *build_id,
name_sz == note_name_sz &&
memcmp(nhdr + 1, note_name, note_name_sz) == 0 &&
desc_sz > 0 && desc_sz <= BUILD_ID_SIZE_MAX) {
- data = note_start + note_off + ALIGN(note_name_sz, 4);
+ data = note_start + note_off + sizeof(Elf32_Nhdr) + ALIGN(note_name_sz, 4);
memcpy(build_id, data, desc_sz);
memset(build_id + desc_sz, 0, BUILD_ID_SIZE_MAX - desc_sz);
if (size)