mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
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:
@@ -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"));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user