param: fix NULL comparison on oom
Rusty Russell [Thu, 29 Oct 2009 14:56:17 +0000 (08:56 -0600)]
kp->arg is always true: it's the contents of that pointer we care about.

Reported-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Cc: stable@kernel.org

kernel/params.c

index 95ef27c..00520c4 100644 (file)
@@ -222,7 +222,7 @@ int param_set_charp(const char *val, struct kernel_param *kp)
         * don't need to; this mangled commandline is preserved. */
        if (slab_is_available()) {
                *(char **)kp->arg = kstrdup(val, GFP_KERNEL);
-               if (!kp->arg)
+               if (!*(char **)kp->arg)
                        return -ENOMEM;
        } else
                *(const char **)kp->arg = val;