Commit 201d6953 authored by Julia Lawall's avatar Julia Lawall Committed by James Toy

Check that the result of kmalloc is not NULL before passing it to other

functions.

The semantic match that finds this problem is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@@
expression *x;
identifier f;
constant char *C;
@@

x = \(kmalloc\|kcalloc\|kzalloc\)(...);
... when != x == NULL
    when != x != NULL
    when != (x || ...)
(
kfree(x)
|
f(...,C,...,x,...)
|
*f(...,x,...)
|
*x->f
)
// </smpl>
Signed-off-by: default avatarJulia Lawall <julia@diku.dk>
Cc: Ming Lei <tom.leiming@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent a159fc02
...@@ -716,6 +716,10 @@ int au1100fb_setup(char *options) ...@@ -716,6 +716,10 @@ int au1100fb_setup(char *options)
/* Mode option (only option that start with digit) */ /* Mode option (only option that start with digit) */
else if (isdigit(this_opt[0])) { else if (isdigit(this_opt[0])) {
mode = kmalloc(strlen(this_opt) + 1, GFP_KERNEL); mode = kmalloc(strlen(this_opt) + 1, GFP_KERNEL);
if (!mode) {
print_err("memory allocation failed");
return -ENOMEM;
}
strncpy(mode, this_opt, strlen(this_opt) + 1); strncpy(mode, this_opt, strlen(this_opt) + 1);
} }
/* Unsupported option */ /* Unsupported option */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment