Description: Check the return value of kmalloc() in function ch_readconfig(), in file drivers/scsi/ch.c.
Signed-off-by: Amit Choudhary <[EMAIL PROTECTED]> diff --git a/drivers/scsi/ch.c b/drivers/scsi/ch.c index f6caa43..fcd635b 100644 --- a/drivers/scsi/ch.c +++ b/drivers/scsi/ch.c @@ -324,7 +324,7 @@ ch_readconfig(scsi_changer *ch) if (!buffer) return -ENOMEM; memset(buffer,0,512); - + memset(cmd,0,sizeof(cmd)); cmd[0] = MODE_SENSE; cmd[1] = ch->device->lun << 5; @@ -367,7 +367,7 @@ ch_readconfig(scsi_changer *ch) } else { vprintk("reading element address assigment page failed!\n"); } - + /* vendor specific element types */ for (i = 0; i < 4; i++) { if (0 == vendor_counts[i]) @@ -384,6 +384,10 @@ ch_readconfig(scsi_changer *ch) /* look up the devices of the data transfer elements */ ch->dt = kmalloc(ch->counts[CHET_DT]*sizeof(struct scsi_device), GFP_KERNEL); + if (!ch->dt) { + kfree(buffer); + return -ENOMEM; + } for (elem = 0; elem < ch->counts[CHET_DT]; elem++) { id = -1; lun = 0; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/