diff options
author | Xiubo Li <Li.Xiubo@freescale.com> | 2014-09-24 14:30:29 +0800 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2014-09-24 09:52:43 +0100 |
commit | c7908a37aeee2a038d7b1492eae29750d8738d2e (patch) | |
tree | abecdcc00c0e480427e0c0d1a680ce31df268220 /drivers/spi | |
parent | 38ec10f60d9ca3a7eb3a5b52500a67479296b86f (diff) |
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')
-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; |