From: Tobias Stoeckmann Date: Sat, 15 Feb 2025 21:03:34 +0000 (+0100) Subject: libkmod: Check correct ELF header size X-Git-Tag: v34~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0f8a593c77fd3cc376f50ea553143cc5fe87cb38;p=thirdparty%2Fkmod.git libkmod: Check correct ELF header size Check if enough bytes are available for Elf32_Ehdr, not Elf32_Shdr. The size of Elf32_Shdr is needed later on. Since both are 64 bytes, no functional change. Signed-off-by: Tobias Stoeckmann Link: https://github.com/kmod-project/kmod/pull/279 Signed-off-by: Lucas De Marchi --- diff --git a/libkmod/libkmod-elf.c b/libkmod/libkmod-elf.c index 30388bc1..f215f1ee 100644 --- a/libkmod/libkmod-elf.c +++ b/libkmod/libkmod-elf.c @@ -349,14 +349,14 @@ struct kmod_elf *kmod_elf_new(const void *memory, off_t size) Elf32_Ehdr *hdr; shdr_size = sizeof(Elf32_Shdr); - if (!elf_range_valid(elf, 0, shdr_size)) + if (!elf_range_valid(elf, 0, sizeof(*hdr))) goto invalid; LOAD_HEADER; } else { Elf64_Ehdr *hdr; shdr_size = sizeof(Elf64_Shdr); - if (!elf_range_valid(elf, 0, shdr_size)) + if (!elf_range_valid(elf, 0, sizeof(*hdr))) goto invalid; LOAD_HEADER; }