modpost: prevent leak when early return no suffix .o in read_symbols()

The allocation for elf info symsearch and hdr from parse_elf() haven't
been released when return because of modname didn't have suffix ".o".
And it seems like the suffix ".o" check did not depends on parse_elf()
to succeed first. So, move the suffix ".o" check before checking
parse_elf() result to prevent resource leak when the modname didn't have
suffix ".o" and return early.

This is reported by Coverity Scan as "Resource leak".

Fixes: 8c9ce89c5b ("modpost: simplify mod->name allocation")
Signed-off-by: Robertus Diawan Chris <robertusdchris@gmail.com>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Link: https://patch.msgid.link/20260624044742.144852-1-robertusdchris@gmail.com
Signed-off-by: Nicolas Schier <nsc@kernel.org>
This commit is contained in:
Robertus Diawan Chris
2026-07-24 07:07:36 +02:00
committed by Nicolas Schier
parent 77e9bd85dc
commit f2308dd42c
+3 -3
View File
@@ -1591,14 +1591,14 @@ static void read_symbols(const char *modname)
struct elf_info info = { };
Elf_Sym *sym;
if (!parse_elf(&info, modname))
return;
if (!strends(modname, ".o")) {
error("%s: filename must be suffixed with .o\n", modname);
return;
}
if (!parse_elf(&info, modname))
return;
/* strip trailing .o */
mod = new_module(modname, strlen(modname) - strlen(".o"));