Skip to content

Commit c8ee24b

Browse files
author
CIQ Kernel Automation
committed
scsi: qla2xxx: Fix improper freeing of purex item
jira VULN-171236 cve CVE-2025-68741 commit-author Zilin Guan <zilin@seu.edu.cn> commit 78b1a24 In qla2xxx_process_purls_iocb(), an item is allocated via qla27xx_copy_multiple_pkt(), which internally calls qla24xx_alloc_purex_item(). The qla24xx_alloc_purex_item() function may return a pre-allocated item from a per-adapter pool for small allocations, instead of dynamically allocating memory with kzalloc(). An error handling path in qla2xxx_process_purls_iocb() incorrectly uses kfree() to release the item. If the item was from the pre-allocated pool, calling kfree() on it is a bug that can lead to memory corruption. Fix this by using the correct deallocation function, qla24xx_free_purex_item(), which properly handles both dynamically allocated and pre-allocated items. Fixes: 875386b ("scsi: qla2xxx: Add Unsolicited LS Request and Response Support for NVMe") Signed-off-by: Zilin Guan <zilin@seu.edu.cn> Reviewed-by: Himanshu Madhani <hmadhani2024@gmail.com> Link: https://patch.msgid.link/20251113151246.762510-1-zilin@seu.edu.cn Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> (cherry picked from commit 78b1a24) Signed-off-by: CIQ Kernel Automation <ciq_kernel_automation@ciq.com>
1 parent 45f1265 commit c8ee24b

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

drivers/scsi/qla2xxx/qla_nvme.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1290,7 +1290,7 @@ void qla2xxx_process_purls_iocb(void **pkt, struct rsp_que **rsp)
12901290
a.reason = FCNVME_RJT_RC_LOGIC;
12911291
a.explanation = FCNVME_RJT_EXP_NONE;
12921292
xmt_reject = true;
1293-
kfree(item);
1293+
qla24xx_free_purex_item(item);
12941294
goto out;
12951295
}
12961296

0 commit comments

Comments
 (0)