Messages in this thread Patch in this message | | | Date | Wed, 20 Dec 2006 12:05:44 +0100 | From | Sébastien Dugué <> | Subject | Fix IPMI watchdog set_param_str() using kstrdup |
| |
I've wondered for some time why my IPMI watchdog stopped working. I traced it back to the following patch:
[PATCH] ipmi: strstrip conversion
Here is a patch to fix this issue.
Sébastien.
Fix IPMI watchdog set_param_str() using kstrdup
set_param_str() cannot use kstrdup() to duplicate the parameter. That's fine when the driver is compiled as a module but it sure is not when built into the kernel as the kernel parameters are parsed before the kmalloc slabs are setup.
ipmi_watchdog.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-)
Signed-off-by: Sébastien Dugué <sebastien.dugue@bull.net>
Index: linux-2.6.20-rc1/drivers/char/ipmi/ipmi_watchdog.c =================================================================== --- linux-2.6.20-rc1.orig/drivers/char/ipmi/ipmi_watchdog.c 2006-12-14 02:14:23.000000000 +0100 +++ linux-2.6.20-rc1/drivers/char/ipmi/ipmi_watchdog.c 2006-12-19 17:20:06.000000000 +0100 @@ -216,13 +216,13 @@ static int set_param_str(const char *val { action_fn fn = (action_fn) kp->arg; int rv = 0; - char *dup, *s; + char valcp[16]; + char *s; - dup = kstrdup(val, GFP_KERNEL); - if (!dup) - return -ENOMEM; + strncpy(valcp, val, 16); + valcp[15] = '\0'; - s = strstrip(dup); + s = strstrip(valcp); down_read(®ister_sem); rv = fn(s, NULL); @@ -235,7 +235,6 @@ static int set_param_str(const char *val out_unlock: up_read(®ister_sem); - kfree(dup); return rv; } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |