[dpdk-dev] [PATCH] drivers: ifpga_rawdev: fix fd leak in rte_fpga_do_pr
In rte_fpga_do_pr() function, if 'stat' return error the 'file_fd' is never closed thus leading a fd leak. This patch avoids this. Spotted by Coverity: CID 27441 Signed-off-by: Li Qiang --- drivers/raw/ifpga_rawdev/ifpga_rawdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/raw/ifpga_rawdev/ifpga_rawdev.c b/drivers/raw/ifpga_rawdev/ifpga_rawdev.c index da772d026..0dbb16ca6 100644 --- a/drivers/raw/ifpga_rawdev/ifpga_rawdev.c +++ b/drivers/raw/ifpga_rawdev/ifpga_rawdev.c @@ -244,7 +244,7 @@ rte_fpga_do_pr(struct rte_rawdev *rawdev, int port_id, if (ret) { IFPGA_RAWDEV_PMD_ERR("stat on bitstream file failed: %s\n", file_name); - return -EINVAL; + goto close_fd; } buffer_size = file_stat.st_size; IFPGA_RAWDEV_PMD_INFO("bitstream file size: %zu\n", buffer_size); -- 2.17.1
[dpdk-dev] [PATCH] drivers: dpaa: fix 'bman_pool' leak in dpaa_mbuf_create_pool
When 'rte_zmalloc' failed dpaa_mbuf_create_pool() forgets freeing 'bp' thus leading resource leak. This patch avoids this. Spotted by Coverity: CID 337679 Signed-off-by: Li Qiang --- drivers/mempool/dpaa/dpaa_mempool.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/mempool/dpaa/dpaa_mempool.c b/drivers/mempool/dpaa/dpaa_mempool.c index 003081772..3d5c0022c 100644 --- a/drivers/mempool/dpaa/dpaa_mempool.c +++ b/drivers/mempool/dpaa/dpaa_mempool.c @@ -78,8 +78,10 @@ dpaa_mbuf_create_pool(struct rte_mempool *mp) rte_dpaa_bpid_info = (struct dpaa_bp_info *)rte_zmalloc(NULL, sizeof(struct dpaa_bp_info) * DPAA_MAX_BPOOLS, RTE_CACHE_LINE_SIZE); - if (rte_dpaa_bpid_info == NULL) + if (rte_dpaa_bpid_info == NULL) { + bman_free_pool(bp); return -ENOMEM; + }; } rte_dpaa_bpid_info[bpid].mp = mp; -- 2.17.1
Re: [dpdk-dev] [PATCH] drivers: dpaa: fix 'bman_pool' leak in dpaa_mbuf_create_pool
Sorry this patch has an error, please see the v2. Thanks, Li Qiang Li Qiang 于2019年4月9日周二 下午10:33写道: > When 'rte_zmalloc' failed dpaa_mbuf_create_pool() forgets freeing > 'bp' thus leading resource leak. This patch avoids this. > > Spotted by Coverity: CID 337679 > > Signed-off-by: Li Qiang > --- > drivers/mempool/dpaa/dpaa_mempool.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/mempool/dpaa/dpaa_mempool.c > b/drivers/mempool/dpaa/dpaa_mempool.c > index 003081772..3d5c0022c 100644 > --- a/drivers/mempool/dpaa/dpaa_mempool.c > +++ b/drivers/mempool/dpaa/dpaa_mempool.c > @@ -78,8 +78,10 @@ dpaa_mbuf_create_pool(struct rte_mempool *mp) > rte_dpaa_bpid_info = (struct dpaa_bp_info > *)rte_zmalloc(NULL, > sizeof(struct dpaa_bp_info) * > DPAA_MAX_BPOOLS, > RTE_CACHE_LINE_SIZE); > - if (rte_dpaa_bpid_info == NULL) > + if (rte_dpaa_bpid_info == NULL) { > + bman_free_pool(bp); > return -ENOMEM; > + }; > } > > rte_dpaa_bpid_info[bpid].mp = mp; > -- > 2.17.1 > > >
[dpdk-dev] [PATCH v2] drivers: dpaa: fix 'bman_pool' leak in dpaa_mbuf_create_pool
When 'rte_zmalloc' failed dpaa_mbuf_create_pool() forgets freeing 'bp' thus leading resource leak. This patch avoids this. Spotted by Coverity: CID 337679 Signed-off-by: Li Qiang --- drivers/mempool/dpaa/dpaa_mempool.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/mempool/dpaa/dpaa_mempool.c b/drivers/mempool/dpaa/dpaa_mempool.c index 003081772..54cdf37e8 100644 --- a/drivers/mempool/dpaa/dpaa_mempool.c +++ b/drivers/mempool/dpaa/dpaa_mempool.c @@ -78,8 +78,10 @@ dpaa_mbuf_create_pool(struct rte_mempool *mp) rte_dpaa_bpid_info = (struct dpaa_bp_info *)rte_zmalloc(NULL, sizeof(struct dpaa_bp_info) * DPAA_MAX_BPOOLS, RTE_CACHE_LINE_SIZE); - if (rte_dpaa_bpid_info == NULL) + if (rte_dpaa_bpid_info == NULL) { + bman_free_pool(bp); return -ENOMEM; + } } rte_dpaa_bpid_info[bpid].mp = mp; -- 2.17.1
[dpdk-dev] [PATCH v2] drivers: ifpga_rawdev: fix fd leak in rte_fpga_do_pr
In rte_fpga_do_pr() function, if 'stat' return error the 'file_fd' is never closed thus leading a fd leak. This patch avoids this. Spotted by Coverity: CID 27441 Signed-off-by: Li Qiang --- Changes since v1: fill ret before goto close_fd per Rosen's review drivers/raw/ifpga_rawdev/ifpga_rawdev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/raw/ifpga_rawdev/ifpga_rawdev.c b/drivers/raw/ifpga_rawdev/ifpga_rawdev.c index da772d026..eff001b59 100644 --- a/drivers/raw/ifpga_rawdev/ifpga_rawdev.c +++ b/drivers/raw/ifpga_rawdev/ifpga_rawdev.c @@ -244,7 +244,8 @@ rte_fpga_do_pr(struct rte_rawdev *rawdev, int port_id, if (ret) { IFPGA_RAWDEV_PMD_ERR("stat on bitstream file failed: %s\n", file_name); - return -EINVAL; + ret = -EINVAL; + goto close_fd; } buffer_size = file_stat.st_size; IFPGA_RAWDEV_PMD_INFO("bitstream file size: %zu\n", buffer_size); -- 2.17.1
[dpdk-dev] [PATCH v3] drivers: ifpga_rawdev: fix fd leak in rte_fpga_do_pr
In rte_fpga_do_pr() function, if 'stat' return error the 'file_fd' is never closed thus leading a fd leak. This patch avoids this. Coverity issue: 279441 Fixes: ef1e8ede3da59e("raw/ifpga: add Intel FPGA bus rawdev driver") Cc: sta...@dpdk.org Signed-off-by: Li Qiang --- Change since v2: add proper tags in commit message drivers/raw/ifpga_rawdev/ifpga_rawdev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/raw/ifpga_rawdev/ifpga_rawdev.c b/drivers/raw/ifpga_rawdev/ifpga_rawdev.c index da772d026..eff001b59 100644 --- a/drivers/raw/ifpga_rawdev/ifpga_rawdev.c +++ b/drivers/raw/ifpga_rawdev/ifpga_rawdev.c @@ -244,7 +244,8 @@ rte_fpga_do_pr(struct rte_rawdev *rawdev, int port_id, if (ret) { IFPGA_RAWDEV_PMD_ERR("stat on bitstream file failed: %s\n", file_name); - return -EINVAL; + ret = -EINVAL; + goto close_fd; } buffer_size = file_stat.st_size; IFPGA_RAWDEV_PMD_INFO("bitstream file size: %zu\n", buffer_size); -- 2.19.1.3.ge56e4f7
[dpdk-dev] [PATCH v3] drivers: ifpga_rawdev: fix fd leak in rte_fpga_do_pr
In rte_fpga_do_pr() function, if 'stat' return error the 'file_fd' is never closed thus leading a fd leak. This patch avoids this. Coverity issue: 279441 Fixes: ef1e8ede3da59e("raw/ifpga: add Intel FPGA bus rawdev driver") Cc: sta...@dpdk.org Signed-off-by: Li Qiang --- Change since v2: add proper tags in commit message drivers/raw/ifpga_rawdev/ifpga_rawdev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/raw/ifpga_rawdev/ifpga_rawdev.c b/drivers/raw/ifpga_rawdev/ifpga_rawdev.c index da772d026..eff001b59 100644 --- a/drivers/raw/ifpga_rawdev/ifpga_rawdev.c +++ b/drivers/raw/ifpga_rawdev/ifpga_rawdev.c @@ -244,7 +244,8 @@ rte_fpga_do_pr(struct rte_rawdev *rawdev, int port_id, if (ret) { IFPGA_RAWDEV_PMD_ERR("stat on bitstream file failed: %s\n", file_name); - return -EINVAL; + ret = -EINVAL; + goto close_fd; } buffer_size = file_stat.st_size; IFPGA_RAWDEV_PMD_INFO("bitstream file size: %zu\n", buffer_size); -- 2.19.1.3.ge56e4f7