Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit da436528 authored by Dan Carpenter's avatar Dan Carpenter Committed by Linus Torvalds
Browse files

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: default avatarDan Carpenter <dan.carpenter@oracle.com>
Cc: Matthew Wilcox <mawilcox@microsoft.com>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Kees Cook <keescook@chromium.org>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Cc: Daniel Micay <danielmicay@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 895a6072
Loading
Loading
Loading
Loading
+15 −3
Original line number Diff line number Diff line
@@ -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 @@ static __init int memset16_selftest(void)
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 @@ static __init int memset32_selftest(void)
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++) {