spi: Fix possible ZERO_SIZE_PTR pointer dereferencing error.
authorXiubo Li <Li.Xiubo@freescale.com>
Wed, 24 Sep 2014 06:30:29 +0000 (14:30 +0800)
committerMark Brown <broonie@kernel.org>
Wed, 24 Sep 2014 08:52:43 +0000 (09:52 +0100)
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>
drivers/spi/spi.c

index 0edccc82ece5afa8e66d58720623affff39c356c..cc83cdd969ceb4304405885f39c83f5fb31ae4a3 100644 (file)
@@ -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;