summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libata-scsi.c
diff options
context:
space:
mode:
authorJeff Raubitschek <jhr@google.com>2005-10-04 16:21:19 +0200
committerJeff Garzik <jgarzik@pobox.com>2005-10-04 16:21:19 +0200
commit54dac83c426a1a03bd139c5ac7e938890bd2693e (patch)
treee2bc11da1f3cdb99bbe13d5452928b8470604314 /drivers/scsi/libata-scsi.c
parentMerge /spare/repo/linux-2.6/ (diff)
downloadlinux-54dac83c426a1a03bd139c5ac7e938890bd2693e.tar.xz
linux-54dac83c426a1a03bd139c5ac7e938890bd2693e.zip
[libata passthru] fix leak on error
Diffstat (limited to 'drivers/scsi/libata-scsi.c')
-rw-r--r--drivers/scsi/libata-scsi.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/scsi/libata-scsi.c b/drivers/scsi/libata-scsi.c
index 98057563a3cc..75cb685e320b 100644
--- a/drivers/scsi/libata-scsi.c
+++ b/drivers/scsi/libata-scsi.c
@@ -116,8 +116,10 @@ int ata_cmd_ioctl(struct scsi_device *scsidev, void __user *arg)
if (args[3]) {
argsize = SECTOR_SIZE * args[3];
argbuf = kmalloc(argsize, GFP_KERNEL);
- if (argbuf == NULL)
- return -ENOMEM;
+ if (argbuf == NULL) {
+ rc = -ENOMEM;
+ goto error;
+ }
scsi_cmd[1] = (4 << 1); /* PIO Data-in */
scsi_cmd[2] = 0x0e; /* no off.line or cc, read from dev,