Thread (50 messages) 50 messages, 5 authors, 17h ago

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

From: Petr Mladek <pmladek@suse.com>
Date: 2026-06-24 12:03:38

On Tue 2026-06-23 10:20:38, Miroslav Benes wrote:
quoted
quoted
Anyway, could you send the fix separately since it is an existing issue,
please?
Does the following change look good to you ?
diff --git a/kernel/livepatch/core.c b/kernel/livepatch/core.c
index 28d15ba58a26..317a3c866c76 100644
--- a/kernel/livepatch/core.c
+++ b/kernel/livepatch/core.c
@@ -799,9 +799,6 @@ void klp_free_replaced_patches_async(struct
klp_patch *new_patch)

 static int klp_init_func(struct klp_object *obj, struct klp_func *func)
 {
-       if (!func->old_name)
-               return -EINVAL;
-
        /*
         * NOPs get the address later. The patched module must be loaded,
         * see klp_init_object_loaded().
@@ -1107,8 +1104,9 @@ static int __klp_enable_patch(struct klp_patch *patch)
  */
 int klp_enable_patch(struct klp_patch *patch)
 {
-       int ret;
        struct klp_object *obj;
+       struct klp_func *func;
+       int ret;

        if (!patch || !patch->mod || !patch->objs)
                return -EINVAL;
@@ -1116,9 +1114,12 @@ int klp_enable_patch(struct klp_patch *patch)
        klp_for_each_object_static(patch, obj) {
                if (!obj->funcs)
                        return -EINVAL;
+               klp_for_each_func_static(obj, func) {
+                       if (!func->old_name)
+                               return -EINVAL;
+               }
        }

-
        if (!is_livepatch_module(patch->mod)) {
                pr_err("module %s is not marked as a livepatch module\n",
                       patch->mod->name);
If you wrap it into klp_check_patch() which Petr proposed alongside 
with all the checks at the beginning of klp_enable_patch() up to 
is_livepatch_module(), then yes, I think.
+1

Best Regards,
Petr
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help