diff options
author | Xiubo Li <Li.Xiubo@freescale.com> | 2014-09-24 08:30:29 +0200 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2014-09-24 10:52:43 +0200 |
commit | c7908a37aeee2a038d7b1492eae29750d8738d2e (patch) | |
tree | abecdcc00c0e480427e0c0d1a680ce31df268220 /drivers/spi/spi.c | |
parent | spi: Only call transfer_one() if we have buffers to transfer (diff) | |
download | linux-c7908a37aeee2a038d7b1492eae29750d8738d2e.tar.xz linux-c7908a37aeee2a038d7b1492eae29750d8738d2e.zip |
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 <Li.Xiubo@freescale.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/spi/spi.c')
-rw-r--r-- | drivers/spi/spi.c | 3 |
1 files changed, 3 insertions, 0 deletions
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; |