projects
/
linux-block.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
320fae9
)
net/qla3xxx: fix potential memleak in ql_alloc_buffer_queues
author
Dinghao Liu
<dinghao.liu@zju.edu.cn>
Wed, 27 Dec 2023 07:02:27 +0000
(15:02 +0800)
committer
Jakub Kicinski
<kuba@kernel.org>
Thu, 4 Jan 2024 00:50:08 +0000
(16:50 -0800)
When dma_alloc_coherent() fails, we should free qdev->lrg_buf
to prevent potential memleak.
Fixes:
1357bfcf7106
("qla3xxx: Dynamically size the rx buffer queue based on the MTU.")
Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
Link:
https://lore.kernel.org/r/20231227070227.10527-1-dinghao.liu@zju.edu.cn
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/qlogic/qla3xxx.c
patch
|
blob
|
blame
|
history
diff --git
a/drivers/net/ethernet/qlogic/qla3xxx.c
b/drivers/net/ethernet/qlogic/qla3xxx.c
index 0d57ffcedf0c6b59f566185625e8d07c28992618..fc78bc959ded81cfec2c8c929ccd5cb8effed285 100644
(file)
--- a/
drivers/net/ethernet/qlogic/qla3xxx.c
+++ b/
drivers/net/ethernet/qlogic/qla3xxx.c
@@
-2591,6
+2591,7
@@
static int ql_alloc_buffer_queues(struct ql3_adapter *qdev)
if (qdev->lrg_buf_q_alloc_virt_addr == NULL) {
netdev_err(qdev->ndev, "lBufQ failed\n");
+ kfree(qdev->lrg_buf);
return -ENOMEM;
}
qdev->lrg_buf_q_virt_addr = qdev->lrg_buf_q_alloc_virt_addr;
@@
-2615,6
+2616,7
@@
static int ql_alloc_buffer_queues(struct ql3_adapter *qdev)
qdev->lrg_buf_q_alloc_size,
qdev->lrg_buf_q_alloc_virt_addr,
qdev->lrg_buf_q_alloc_phy_addr);
+ kfree(qdev->lrg_buf);
return -ENOMEM;
}