summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2009-10-29 15:56:17 +0100
committerRusty Russell <rusty@rustcorp.com.au>2009-10-28 23:26:18 +0100
commitd553ad864e3b3dde3f1038d491e207021b2d6293 (patch)
tree2a6d4e482e72daf6056e1fb984407754e019f15a /kernel
parentparam: fix lots of bugs with writing charp params from sysfs, by leaking mem. (diff)
downloadlinux-d553ad864e3b3dde3f1038d491e207021b2d6293.tar.xz
linux-d553ad864e3b3dde3f1038d491e207021b2d6293.zip
param: fix NULL comparison on oom
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
Diffstat (limited to 'kernel')
-rw-r--r--kernel/params.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/params.c b/kernel/params.c
index 95ef27cf8e82..00520c43d88c 100644
--- a/kernel/params.c
+++ b/kernel/params.c
@@ -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;