Messages in this thread Patch in this message | | | From | Rusty Russell <> | Subject | [PATCH] Fix strlen_user usage in module.c | Date | Mon, 13 Jan 2003 14:42:57 +1100 |
| |
Spotted by Andi Kleen. strlen_user *is* documented, I just made assumptions.
Name: Fix strlen_user usage Author: Rusty Russell Status: Trivial
D: strlen_user returns 0 on error, not an error number, and otherwise D: returns the length including the NUL byte. Found by Andi Kleen.
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .22129-linux-2.5.55/kernel/module.c .22129-linux-2.5.55.updated/kernel/module.c --- .22129-linux-2.5.55/kernel/module.c 2003-01-10 10:55:43.000000000 +1100 +++ .22129-linux-2.5.55.updated/kernel/module.c 2003-01-10 20:55:55.000000000 +1100 @@ -1096,17 +1096,17 @@ static struct module *load_module(void * mod = (void *)sechdrs[modindex].sh_addr; /* Now copy in args */ - err = strlen_user(uargs); - if (err < 0) + arglen = strlen_user(uargs); + if (!arglen) { + err = -EFAULT; goto free_hdr; - arglen = err; - - args = kmalloc(arglen+1, GFP_KERNEL); + } + args = kmalloc(arglen, GFP_KERNEL); if (!args) { err = -ENOMEM; goto free_hdr; } - if (copy_from_user(args, uargs, arglen+1) != 0) { + if (copy_from_user(args, uargs, arglen) != 0) { err = -EFAULT; goto free_mod; } -- Anyone who quotes me in their sig is an idiot. -- Rusty Russell. - 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/
| |