aboutsummaryrefslogtreecommitdiffstats
path: root/lib/string.c
diff options
context:
space:
mode:
authorDan Carpenter <[email protected]>2017-09-08 23:15:48 +0000
committerLinus Torvalds <[email protected]>2017-09-09 01:26:49 +0000
commitda436528267ab45fb44ee52a28ebac85b8e24c3d (patch)
treee1d0aa0e8d7e9f580bb98d747bbcaa98394613b8 /lib/string.c
parentlib/rhashtable: fix comment on locks_mul default value (diff)
downloadkernel-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.c18
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++) {