projects
/
platform
/
kernel
/
linux-starfive.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
4a22937
)
objtool: Fix memory leak in create_static_call_sections()
author
Miaoqian Lin
<linmq006@gmail.com>
Mon, 5 Dec 2022 08:06:42 +0000
(12:06 +0400)
committer
Greg Kroah-Hartman
<gregkh@linuxfoundation.org>
Sat, 11 Mar 2023 12:55:17 +0000
(13:55 +0100)
[ Upstream commit
3da73f102309fe29150e5c35acd20dd82063ff67
]
strdup() allocates memory for key_name. We need to release the memory in
the following error paths. Add free() to avoid memory leak.
Fixes:
1e7e47883830
("x86/static_call: Add inline static call implementation for x86-64")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link:
https://lore.kernel.org/r/20221205080642.558583-1-linmq006@gmail.com
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
tools/objtool/check.c
patch
|
blob
|
history
diff --git
a/tools/objtool/check.c
b/tools/objtool/check.c
index
0c1b6ac
..
730b49e
100644
(file)
--- a/
tools/objtool/check.c
+++ b/
tools/objtool/check.c
@@
-668,6
+668,7
@@
static int create_static_call_sections(struct objtool_file *file)
if (strncmp(key_name, STATIC_CALL_TRAMP_PREFIX_STR,
STATIC_CALL_TRAMP_PREFIX_LEN)) {
WARN("static_call: trampoline name malformed: %s", key_name);
+ free(key_name);
return -1;
}
tmp = key_name + STATIC_CALL_TRAMP_PREFIX_LEN - STATIC_CALL_KEY_PREFIX_LEN;
@@
-677,6
+678,7
@@
static int create_static_call_sections(struct objtool_file *file)
if (!key_sym) {
if (!opts.module) {
WARN("static_call: can't find static_call_key symbol: %s", tmp);
+ free(key_name);
return -1;
}