All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] scsi: elx: libefc: fix resources leak in efcport_init() error path
@ 2026-10-08 18:54 Haotian Zhang
  2026-10-08 19:04 ` sashiko-bot
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Haotian Zhang @ 2026-10-08 18:54 UTC (permalink / raw)
  To: Ram Vegesna, James E.J. Bottomley, Martin K. Petersen,
	James Smart, Daniel Wagner
  Cc: linux-scsi, target-devel, linux-kernel

efcport_init() creates efc->node_pool and efc->node_dma_pool before
allocating efc->els_io_pool. When the latter allocation fails it returns
-ENOMEM without releasing the node dma pool or the node pool, leaking
both. The caller efct_efclib_config() only logs the error and
efct_device_attach() failure path never calls efcport_destroy(), so the
resources are never freed.

Destroy node_dma_pool and node_pool before returning from the
els_io_pool allocation failure path.

Fixes: d7b71fd2195e ("scsi: elx: libefc: Emulex FC discovery library APIs and definitions")
Assisted-by: DeepSeek-V4.1-Flash
Signed-off-by: Haotian Zhang <vulab@iscas.ac.cn>
---
 drivers/scsi/elx/libefc/efclib.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/scsi/elx/libefc/efclib.c b/drivers/scsi/elx/libefc/efclib.c
index dd3e3d0a4761..ceec0e2a0266 100644
--- a/drivers/scsi/elx/libefc/efclib.c
+++ b/drivers/scsi/elx/libefc/efclib.c
@@ -50,6 +50,8 @@ int efcport_init(struct efc *efc)
 						sizeof(struct efc_els_io_req));
 	if (!efc->els_io_pool) {
 		efc_log_err(efc, "Can't allocate els io pool\n");
+		dma_pool_destroy(efc->node_dma_pool);
+		mempool_destroy(efc->node_pool);
 		return -ENOMEM;
 	}
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-10-29  2:03 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-08 18:54 [PATCH] scsi: elx: libefc: fix resources leak in efcport_init() error path Haotian Zhang
2026-10-08 19:04 ` sashiko-bot
2026-10-09  6:10 ` Krzysztof Kozlowski
2026-10-12  9:36 ` Daniel Wagner
2026-10-24  2:22 ` Martin K. Petersen
2026-10-29  2:02 ` Martin K. Petersen (Oracle)

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.