[SCSI] qla2xxx: don't free pool that wasn't allocated
authorDan Carpenter <dan.carpenter@oracle.com>
Thu, 17 May 2012 07:13:40 +0000 (10:13 +0300)
committerJames Bottomley <JBottomley@Parallels.com>
Tue, 22 May 2012 10:52:20 +0000 (11:52 +0100)
In the original code, if dma_pool_alloc() fails then we call
dma_pool_free().  It causes an error, possibly a NULL dereference.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Chad Dupuis <chad.dupuis@qlogic.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/qla2xxx/qla_iocb.c

index 73cc96da9421591d9a2cfb5ae7289894819d3423..70dbf53d9e0f4fe0762073cb0bfec1508251fc8f 100644 (file)
@@ -2382,7 +2382,7 @@ sufficient_dsds:
                if (!ctx->fcp_cmnd) {
                        ql_log(ql_log_fatal, vha, 0x3011,
                            "Failed to allocate fcp_cmnd for cmd=%p.\n", cmd);
-                       goto queuing_error_fcp_cmnd;
+                       goto queuing_error;
                }
 
                /* Initialize the DSD list and dma handle */