staging: netlogic: Return zero pointer after failed kmalloc
authorLaura Garcia Liebana <nevola@gmail.com>
Thu, 18 Feb 2016 17:38:42 +0000 (18:38 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 20 Feb 2016 22:59:37 +0000 (14:59 -0800)
Return a ZERO_SIZE_PTR in the xlr_config_spill function if the
kmalloc returns an invalid value. This change prevents a possible
segmentation fault as the invalid pointer is fed into PTR_ALIGN macro.

Signed-off-by: Laura Garcia Liebana <nevola@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/netlogic/xlr_net.c

index 98e74d777e0993dd81d2b9e36b9ef852980a914b..00158471a7f62e82b632f2c8842d6c68f23007ec 100644 (file)
@@ -437,8 +437,10 @@ static void *xlr_config_spill(struct xlr_net_priv *priv, int reg_start_0,
        base = priv->base_addr;
        spill_size = size;
        spill = kmalloc(spill_size + SMP_CACHE_BYTES, GFP_ATOMIC);
-       if (!spill)
+       if (!spill) {
                pr_err("Unable to allocate memory for spill area!\n");
+               return ZERO_SIZE_PTR;
+       }
 
        spill = PTR_ALIGN(spill, SMP_CACHE_BYTES);
        phys_addr = virt_to_phys(spill);