[PATCH] SCSI, target: Don't leak memory in error path inpscsi_alloc_task()

From: Jesper Juhl
Date: Sat Jan 29 2011 - 17:28:51 EST


We'll leak the memory allocated via kzalloc() to 'pt' if the allocation of
memory for 'pt->pscsi_cdb' fails in pscsi_alloc_task().
This patch fixes the leak by kfree()'ing the previously allocated memory
in the error path.

Signed-off-by: Jesper Juhl <jj@xxxxxxxxxxxxx>
---
target_core_pscsi.c | 1 +
1 file changed, 1 insertion(+)

Compile tested only since I lack the hardware.

diff --git a/drivers/target/target_core_pscsi.c b/drivers/target/target_core_pscsi.c
index 742d246..84561a0 100644
--- a/drivers/target/target_core_pscsi.c
+++ b/drivers/target/target_core_pscsi.c
@@ -815,6 +815,7 @@ pscsi_alloc_task(struct se_cmd *cmd)

pt->pscsi_cdb = kzalloc(scsi_command_size(cdb), GFP_KERNEL);
if (!(pt->pscsi_cdb)) {
+ kfree(pt);
printk(KERN_ERR "pSCSI: Unable to allocate extended"
" pt->pscsi_cdb\n");
return NULL;


--
Jesper Juhl <jj@xxxxxxxxxxxxx> http://www.chaosbits.net/
Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/