From 5c10007560589a2335a77cbc92347b1474518296 Mon Sep 17 00:00:00 2001 From: Julia Lawall Date: Wed, 29 Dec 2010 15:57:54 +0100 Subject: [SCSI] gdth: Add missing call to gdth_ioctl_free Add missing call to gdth_ioctl_free before aborting. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @@ expression buf,ha,len,addr,E; @@ buf = gdth_ioctl_alloc(ha, len, FALSE, &addr) ... when != false buf != NULL when != true buf == NULL when != \(E = buf\|buf = E\) when != gdth_ioctl_free(ha, len, buf, addr) *return ...; // Signed-off-by: Julia Lawall Signed-off-by: James Bottomley --- drivers/scsi/gdth.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'drivers/scsi/gdth.c') diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c index 76365700e2d5..3242bcabad97 100644 --- a/drivers/scsi/gdth.c +++ b/drivers/scsi/gdth.c @@ -4273,8 +4273,10 @@ static int ioc_general(void __user *arg, char *cmnd) } rval = __gdth_execute(ha->sdev, &gen.command, cmnd, gen.timeout, &gen.info); - if (rval < 0) + if (rval < 0) { + gdth_ioctl_free(ha, gen.data_len+gen.sense_len, buf, paddr); return rval; + } gen.status = rval; if (copy_to_user(arg + sizeof(gdth_ioctl_general), buf, -- cgit