scsi: aic94xx: Add a missing call to kfree
authorQuentin Lambert <lambert.quentin@gmail.com>
Fri, 25 Nov 2016 12:23:51 +0000 (13:23 +0100)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 29 Nov 2016 16:21:49 +0000 (11:21 -0500)
Most error branches following the call to kzalloc contain a call to
kfree. This patch add these calls where they are missing and set the
relevant pointers to NULL.

This issue was found with Hector.

Signed-off-by: Quentin Lambert <lambert.quentin@gmail.com>
Reviewed-by: Tomas Henzl <thenzl@redhat.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/aic94xx/aic94xx_hwi.c

index 7c713f7..f2671a8 100644 (file)
@@ -228,8 +228,11 @@ static int asd_init_scbs(struct asd_ha_struct *asd_ha)
        bitmap_bytes = (asd_ha->seq.tc_index_bitmap_bits+7)/8;
        bitmap_bytes = BITS_TO_LONGS(bitmap_bytes*8)*sizeof(unsigned long);
        asd_ha->seq.tc_index_bitmap = kzalloc(bitmap_bytes, GFP_KERNEL);
-       if (!asd_ha->seq.tc_index_bitmap)
+       if (!asd_ha->seq.tc_index_bitmap) {
+               kfree(asd_ha->seq.tc_index_array);
+               asd_ha->seq.tc_index_array = NULL;
                return -ENOMEM;
+       }
 
        spin_lock_init(&seq->tc_index_lock);