[PATCH v3 1/7] livepatch: Fix NULL pointer dereference in klp_find_func()

Yafang Shao <[email protected]> Sun, 7 Jun 2026 21:16:53 +0800
Newsgroups org.kernel.vger.live-patching
Message-ID <[email protected]>
If a newly loaded livepatch provides a function entry with a NULL old_name,
func->old_name will be NULL when evaluated in strcmp():

klp_init_patch()
    klp_add_nops()
        klp_find_func()
            strcmp(old_func->old_name, func->old_name)

Reported-by: sashiko-bot <[email protected]>
Closes: https://lore.kernel.org/live-patching/[email protected]/
Signed-off-by: Yafang Shao <[email protected]>
---
 kernel/livepatch/core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/livepatch/core.c b/kernel/livepatch/core.c
index 28d15ba58a26..95117f7a5b00 100644
--- a/kernel/livepatch/core.c
+++ b/kernel/livepatch/core.c
@@ -92,7 +92,7 @@ static struct klp_func *klp_find_func(struct klp_object *obj,
 		 * Besides identical old_sympos, also consider old_sympos
 		 * of 0 and 1 are identical.
 		 */
-		if ((strcmp(old_func->old_name, func->old_name) == 0) &&
+		if ((func->old_name && strcmp(old_func->old_name, func->old_name) == 0) &&
 		    ((old_func->old_sympos == func->old_sympos) ||
 		     (old_func->old_sympos == 0 && func->old_sympos == 1) ||
 		     (old_func->old_sympos == 1 && func->old_sympos == 0))) {
-- 
2.52.0