param: fix NULL comparison on oom
authorRusty Russell <rusty@rustcorp.com.au>
Thu, 29 Oct 2009 14:56:17 +0000 (08:56 -0600)
committerRusty Russell <rusty@rustcorp.com.au>
Wed, 28 Oct 2009 22:26:18 +0000 (08:56 +1030)
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);
         * 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;
                        return -ENOMEM;
        } else
                *(const char **)kp->arg = val;