diff options
| author | Dan Carpenter <[email protected]> | 2017-09-08 23:15:48 +0000 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2017-09-09 01:26:49 +0000 |
| commit | da436528267ab45fb44ee52a28ebac85b8e24c3d (patch) | |
| tree | e1d0aa0e8d7e9f580bb98d747bbcaa98394613b8 /lib/string.c | |
| parent | lib/rhashtable: fix comment on locks_mul default value (diff) | |
| download | kernel-da436528267ab45fb44ee52a28ebac85b8e24c3d.tar.gz kernel-da436528267ab45fb44ee52a28ebac85b8e24c3d.zip | |
lib/string.c: check for kmalloc() failure
This is mostly to keep the number of static checker warnings down so we
can spot new bugs instead of them being drowned in noise. This function
doesn't return normal kernel error codes but instead the return value is
used to display exactly which memory failed. I chose -1 as hopefully
that's a helpful thing to print.
Link: http://lkml.kernel.org/r/20170817115420.uikisjvfmtrqkzjn@mwanda
Signed-off-by: Dan Carpenter <[email protected]>
Cc: Matthew Wilcox <[email protected]>
Cc: Stephen Rothwell <[email protected]>
Cc: Kees Cook <[email protected]>
Cc: Bjorn Helgaas <[email protected]>
Cc: Mauro Carvalho Chehab <[email protected]>
Cc: Heikki Krogerus <[email protected]>
Cc: Daniel Micay <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'lib/string.c')
| -rw-r--r-- | lib/string.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/lib/string.c b/lib/string.c index abf6499e3915..9921dc202db4 100644 --- a/lib/string.c +++ b/lib/string.c @@ -1059,7 +1059,11 @@ EXPORT_SYMBOL(fortify_panic); static __init int memset16_selftest(void) { unsigned i, j, k; - u16 v, *p = kmalloc(256 * 2 * 2, GFP_KERNEL); + u16 v, *p; + + p = kmalloc(256 * 2 * 2, GFP_KERNEL); + if (!p) + return -1; for (i = 0; i < 256; i++) { for (j = 0; j < 256; j++) { @@ -1091,7 +1095,11 @@ fail: static __init int memset32_selftest(void) { unsigned i, j, k; - u32 v, *p = kmalloc(256 * 2 * 4, GFP_KERNEL); + u32 v, *p; + + p = kmalloc(256 * 2 * 4, GFP_KERNEL); + if (!p) + return -1; for (i = 0; i < 256; i++) { for (j = 0; j < 256; j++) { @@ -1123,7 +1131,11 @@ fail: static __init int memset64_selftest(void) { unsigned i, j, k; - u64 v, *p = kmalloc(256 * 2 * 8, GFP_KERNEL); + u64 v, *p; + + p = kmalloc(256 * 2 * 8, GFP_KERNEL); + if (!p) + return -1; for (i = 0; i < 256; i++) { for (j = 0; j < 256; j++) { |
