[v2] raw/ifpga_rawdev: fix fd leak in rte fpga do pr

Message ID 1555485388-50214-1-git-send-email-andy.pei@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series [v2] raw/ifpga_rawdev: fix fd leak in rte fpga do pr |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/intel-Performance-Testing success Performance Testing PASS
ci/mellanox-Performance-Testing success Performance Testing PASS
ci/Intel-compilation success Compilation OK

Commit Message

Pei, Andy April 17, 2019, 7:16 a.m. UTC
  In rte_fpga_do_pr() function, if 'stat' returns error,
rte_fpga_do_pr() returns -EINVAL without closing the
'file_fd' that has been opened.
After this patch, 'file_fd' is closed before rte_fpga_do_pr()
returns -EINVAL when 'stat' returns error

Coverity issue: 279441
Fixes: ef1e8ede3da5 ("raw/ifpga: add Intel FPGA bus rawdev driver")
Cc: rosen.xu@intel.com
Cc: marko.kovacevic@intel.com
Cc: liq3ea@163.com
Cc: andy.pei@intel.com
Cc: stable@dpdk.org

Signed-off-by: Andy Pei <andy.pei@intel.com>
---
---
 drivers/raw/ifpga_rawdev/ifpga_rawdev.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
  

Comments

Xu, Rosen April 17, 2019, 8:03 a.m. UTC | #1
> -----Original Message-----
> From: Pei, Andy
> Sent: Wednesday, April 17, 2019 15:16
> To: dev@dpdk.org
> Cc: Pei, Andy <andy.pei@intel.com>; Xu, Rosen <rosen.xu@intel.com>;
> Kovacevic, Marko <marko.kovacevic@intel.com>; liq3ea@163.com;
> stable@dpdk.org
> Subject: [PATCH v2] raw/ifpga_rawdev: fix fd leak in rte fpga do pr
> 
> In rte_fpga_do_pr() function, if 'stat' returns error,
> rte_fpga_do_pr() returns -EINVAL without closing the 'file_fd' that has been
> opened.
> After this patch, 'file_fd' is closed before rte_fpga_do_pr() returns -EINVAL
> when 'stat' returns error
> 
> Coverity issue: 279441
> Fixes: ef1e8ede3da5 ("raw/ifpga: add Intel FPGA bus rawdev driver")
> Cc: rosen.xu@intel.com
> Cc: marko.kovacevic@intel.com
> Cc: liq3ea@163.com
> Cc: andy.pei@intel.com
> Cc: stable@dpdk.org
> 
> Signed-off-by: Andy Pei <andy.pei@intel.com>
> ---
> ---
>  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 da772d0..eff001b 100644
> --- a/drivers/raw/ifpga_rawdev/ifpga_rawdev.c
> +++ b/drivers/raw/ifpga_rawdev/ifpga_rawdev.c
> @@ -244,7 +244,8 @@
>  	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);
> --
> 1.8.3.1

Acked-by: Rosen Xu <rosen.xu@intel.com>
  
Thomas Monjalon April 22, 2019, 5:52 p.m. UTC | #2
> > In rte_fpga_do_pr() function, if 'stat' returns error,
> > rte_fpga_do_pr() returns -EINVAL without closing the 'file_fd' that has been
> > opened.
> > After this patch, 'file_fd' is closed before rte_fpga_do_pr() returns -EINVAL
> > when 'stat' returns error
> > 
> > Coverity issue: 279441
> > Fixes: ef1e8ede3da5 ("raw/ifpga: add Intel FPGA bus rawdev driver")
> > Cc: rosen.xu@intel.com
> > Cc: marko.kovacevic@intel.com
> > Cc: liq3ea@163.com
> > Cc: andy.pei@intel.com
> > Cc: stable@dpdk.org
> > 
> > Signed-off-by: Andy Pei <andy.pei@intel.com>
> 
> Acked-by: Rosen Xu <rosen.xu@intel.com>

Li Qiang <liq3ea@163.com> proposed the same patch.
Why he is not referenced here?
Which patch should I merge?
  
Pei, Andy April 23, 2019, 1:19 a.m. UTC | #3
Hi Thomas,

My patch is the same as LI Qiang's patch.
I was told that Qiang's patch cannot get onto the patchwork, so I just help him do this.

-----Original Message-----
From: Thomas Monjalon [mailto:thomas@monjalon.net] 
Sent: Tuesday, April 23, 2019 1:52 AM
To: Xu, Rosen <rosen.xu@intel.com>; Pei, Andy <andy.pei@intel.com>
Cc: stable@dpdk.org; dev@dpdk.org; Kovacevic, Marko <marko.kovacevic@intel.com>; liq3ea@163.com
Subject: Re: [dpdk-stable] [PATCH v2] raw/ifpga_rawdev: fix fd leak in rte fpga do pr

> > In rte_fpga_do_pr() function, if 'stat' returns error,
> > rte_fpga_do_pr() returns -EINVAL without closing the 'file_fd' that 
> > has been opened.
> > After this patch, 'file_fd' is closed before rte_fpga_do_pr() 
> > returns -EINVAL when 'stat' returns error
> > 
> > Coverity issue: 279441
> > Fixes: ef1e8ede3da5 ("raw/ifpga: add Intel FPGA bus rawdev driver")
> > Cc: rosen.xu@intel.com
> > Cc: marko.kovacevic@intel.com
> > Cc: liq3ea@163.com
> > Cc: andy.pei@intel.com
> > Cc: stable@dpdk.org
> > 
> > Signed-off-by: Andy Pei <andy.pei@intel.com>
> 
> Acked-by: Rosen Xu <rosen.xu@intel.com>

Li Qiang <liq3ea@163.com> proposed the same patch.
Why he is not referenced here?
Which patch should I merge?
  
Xu, Rosen April 23, 2019, 1:36 a.m. UTC | #4
Hi Thomas,

Qian has some problem with his email. So some patch can't be found in patch work.
For it's a urgent bug. After we have aligned with Qian, Andy send this patch. Thanks.

> -----Original Message-----
> From: Pei, Andy
> Sent: Tuesday, April 23, 2019 9:19
> To: Thomas Monjalon <thomas@monjalon.net>; Xu, Rosen
> <rosen.xu@intel.com>
> Cc: stable@dpdk.org; dev@dpdk.org; Kovacevic, Marko
> <marko.kovacevic@intel.com>; liq3ea@163.com
> Subject: RE: [dpdk-stable] [PATCH v2] raw/ifpga_rawdev: fix fd leak in rte
> fpga do pr
> 
> Hi Thomas,
> 
> My patch is the same as LI Qiang's patch.
> I was told that Qiang's patch cannot get onto the patchwork, so I just help
> him do this.
> 
> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas@monjalon.net]
> Sent: Tuesday, April 23, 2019 1:52 AM
> To: Xu, Rosen <rosen.xu@intel.com>; Pei, Andy <andy.pei@intel.com>
> Cc: stable@dpdk.org; dev@dpdk.org; Kovacevic, Marko
> <marko.kovacevic@intel.com>; liq3ea@163.com
> Subject: Re: [dpdk-stable] [PATCH v2] raw/ifpga_rawdev: fix fd leak in rte
> fpga do pr
> 
> > > In rte_fpga_do_pr() function, if 'stat' returns error,
> > > rte_fpga_do_pr() returns -EINVAL without closing the 'file_fd' that
> > > has been opened.
> > > After this patch, 'file_fd' is closed before rte_fpga_do_pr()
> > > returns -EINVAL when 'stat' returns error
> > >
> > > Coverity issue: 279441
> > > Fixes: ef1e8ede3da5 ("raw/ifpga: add Intel FPGA bus rawdev driver")
> > > Cc: rosen.xu@intel.com
> > > Cc: marko.kovacevic@intel.com
> > > Cc: liq3ea@163.com
> > > Cc: andy.pei@intel.com
> > > Cc: stable@dpdk.org
> > >
> > > Signed-off-by: Andy Pei <andy.pei@intel.com>
> >
> > Acked-by: Rosen Xu <rosen.xu@intel.com>
> 
> Li Qiang <liq3ea@163.com> proposed the same patch.
> Why he is not referenced here?
> Which patch should I merge?
> 
>
  
Thomas Monjalon April 23, 2019, 8:45 a.m. UTC | #5
When you need to re-send a patch, please apply it with "git am"
so the original author is kept.

Another nit: the title is full of abbreviation, it is hard to read.
The title prefix should be "raw/ifpga", even if checkpatch complains.

Please re-send, thanks.


23/04/2019 03:36, Xu, Rosen:
> Hi Thomas,
> 
> Qian has some problem with his email. So some patch can't be found in patch work.
> For it's a urgent bug. After we have aligned with Qian, Andy send this patch. Thanks.
> 
> > -----Original Message-----
> > From: Pei, Andy
> > Sent: Tuesday, April 23, 2019 9:19
> > To: Thomas Monjalon <thomas@monjalon.net>; Xu, Rosen
> > <rosen.xu@intel.com>
> > Cc: stable@dpdk.org; dev@dpdk.org; Kovacevic, Marko
> > <marko.kovacevic@intel.com>; liq3ea@163.com
> > Subject: RE: [dpdk-stable] [PATCH v2] raw/ifpga_rawdev: fix fd leak in rte
> > fpga do pr
> > 
> > Hi Thomas,
> > 
> > My patch is the same as LI Qiang's patch.
> > I was told that Qiang's patch cannot get onto the patchwork, so I just help
> > him do this.
> > 
> > -----Original Message-----
> > From: Thomas Monjalon [mailto:thomas@monjalon.net]
> > Sent: Tuesday, April 23, 2019 1:52 AM
> > To: Xu, Rosen <rosen.xu@intel.com>; Pei, Andy <andy.pei@intel.com>
> > Cc: stable@dpdk.org; dev@dpdk.org; Kovacevic, Marko
> > <marko.kovacevic@intel.com>; liq3ea@163.com
> > Subject: Re: [dpdk-stable] [PATCH v2] raw/ifpga_rawdev: fix fd leak in rte
> > fpga do pr
> > 
> > > > In rte_fpga_do_pr() function, if 'stat' returns error,
> > > > rte_fpga_do_pr() returns -EINVAL without closing the 'file_fd' that
> > > > has been opened.
> > > > After this patch, 'file_fd' is closed before rte_fpga_do_pr()
> > > > returns -EINVAL when 'stat' returns error
> > > >
> > > > Coverity issue: 279441
> > > > Fixes: ef1e8ede3da5 ("raw/ifpga: add Intel FPGA bus rawdev driver")
> > > > Cc: rosen.xu@intel.com
> > > > Cc: marko.kovacevic@intel.com
> > > > Cc: liq3ea@163.com
> > > > Cc: andy.pei@intel.com
> > > > Cc: stable@dpdk.org
> > > >
> > > > Signed-off-by: Andy Pei <andy.pei@intel.com>
> > >
> > > Acked-by: Rosen Xu <rosen.xu@intel.com>
> > 
> > Li Qiang <liq3ea@163.com> proposed the same patch.
> > Why he is not referenced here?
> > Which patch should I merge?
  
Pei, Andy April 24, 2019, 1:13 a.m. UTC | #6
Hi,

I saw Qiang's patch on patchwork today,
[v3] drivers: ifpga_rawdev: fix fd leak in rte_fpga_do_pr

So I think it seems OK to ignore my patch.



-----Original Message-----
From: Thomas Monjalon [mailto:thomas@monjalon.net] 
Sent: Tuesday, April 23, 2019 4:45 PM
To: Pei, Andy <andy.pei@intel.com>
Cc: Xu, Rosen <rosen.xu@intel.com>; stable@dpdk.org; dev@dpdk.org; Kovacevic, Marko <marko.kovacevic@intel.com>; liq3ea@163.com
Subject: Re: [dpdk-stable] [PATCH v2] raw/ifpga_rawdev: fix fd leak in rte fpga do pr

When you need to re-send a patch, please apply it with "git am"
so the original author is kept.

Another nit: the title is full of abbreviation, it is hard to read.
The title prefix should be "raw/ifpga", even if checkpatch complains.

Please re-send, thanks.


23/04/2019 03:36, Xu, Rosen:
> Hi Thomas,
> 
> Qian has some problem with his email. So some patch can't be found in patch work.
> For it's a urgent bug. After we have aligned with Qian, Andy send this patch. Thanks.
> 
> > -----Original Message-----
> > From: Pei, Andy
> > Sent: Tuesday, April 23, 2019 9:19
> > To: Thomas Monjalon <thomas@monjalon.net>; Xu, Rosen 
> > <rosen.xu@intel.com>
> > Cc: stable@dpdk.org; dev@dpdk.org; Kovacevic, Marko 
> > <marko.kovacevic@intel.com>; liq3ea@163.com
> > Subject: RE: [dpdk-stable] [PATCH v2] raw/ifpga_rawdev: fix fd leak 
> > in rte fpga do pr
> > 
> > Hi Thomas,
> > 
> > My patch is the same as LI Qiang's patch.
> > I was told that Qiang's patch cannot get onto the patchwork, so I 
> > just help him do this.
> > 
> > -----Original Message-----
> > From: Thomas Monjalon [mailto:thomas@monjalon.net]
> > Sent: Tuesday, April 23, 2019 1:52 AM
> > To: Xu, Rosen <rosen.xu@intel.com>; Pei, Andy <andy.pei@intel.com>
> > Cc: stable@dpdk.org; dev@dpdk.org; Kovacevic, Marko 
> > <marko.kovacevic@intel.com>; liq3ea@163.com
> > Subject: Re: [dpdk-stable] [PATCH v2] raw/ifpga_rawdev: fix fd leak 
> > in rte fpga do pr
> > 
> > > > In rte_fpga_do_pr() function, if 'stat' returns error,
> > > > rte_fpga_do_pr() returns -EINVAL without closing the 'file_fd' 
> > > > that has been opened.
> > > > After this patch, 'file_fd' is closed before rte_fpga_do_pr() 
> > > > returns -EINVAL when 'stat' returns error
> > > >
> > > > Coverity issue: 279441
> > > > Fixes: ef1e8ede3da5 ("raw/ifpga: add Intel FPGA bus rawdev 
> > > > driver")
> > > > Cc: rosen.xu@intel.com
> > > > Cc: marko.kovacevic@intel.com
> > > > Cc: liq3ea@163.com
> > > > Cc: andy.pei@intel.com
> > > > Cc: stable@dpdk.org
> > > >
> > > > Signed-off-by: Andy Pei <andy.pei@intel.com>
> > >
> > > Acked-by: Rosen Xu <rosen.xu@intel.com>
> > 
> > Li Qiang <liq3ea@163.com> proposed the same patch.
> > Why he is not referenced here?
> > Which patch should I merge?
  

Patch

diff --git a/drivers/raw/ifpga_rawdev/ifpga_rawdev.c b/drivers/raw/ifpga_rawdev/ifpga_rawdev.c
index da772d0..eff001b 100644
--- a/drivers/raw/ifpga_rawdev/ifpga_rawdev.c
+++ b/drivers/raw/ifpga_rawdev/ifpga_rawdev.c
@@ -244,7 +244,8 @@ 
 	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);