From: Xiubo Li
Date: Wed, 24 Sep 2014 06:30:29 +0000 (+0800)
Subject: spi: Fix possible ZERO_SIZE_PTR pointer dereferencing error.
X-Git-Tag: v3.18-rc1~145^2~6^2
X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=c7908a37aeee2a038d7b1492eae29750d8738d2e;p=linux.git
spi: Fix possible ZERO_SIZE_PTR pointer dereferencing error.
Since we cannot make sure the 'n' will always be none zero here, and
then if either equal to zero, the kzalloc() will return ZERO_SIZE_PTR,
which equals to ((void *)16).
So this patch fix this with just doing the zero check before calling
kzalloc().
Signed-off-by: Xiubo Li
Signed-off-by: Mark Brown
---
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index 0edccc82ece5..cc83cdd969ce 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -552,6 +552,9 @@ int spi_register_board_info(struct spi_board_info const *info, unsigned n)
struct boardinfo *bi;
int i;
+ if (!n)
+ return -EINVAL;
+
bi = kzalloc(n * sizeof(*bi), GFP_KERNEL);
if (!bi)
return -ENOMEM;