net/virtio_user: do not close invalid file descriptor

Message ID 20200106191837.29076-1-stephen@networkplumber.org (mailing list archive)
State Accepted, archived
Delegated to: Maxime Coquelin
Headers
Series net/virtio_user: do not close invalid file descriptor |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-testing success Testing PASS
ci/travis-robot success Travis build: passed
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-nxp-Performance success Performance Testing PASS
ci/Intel-compilation success Compilation OK

Commit Message

Stephen Hemminger Jan. 6, 2020, 7:18 p.m. UTC
  Valgrind complains that virtio_user is calling close(-1).
Fix this by adding check in virtio that is similar to existing code.

Fixes: 37a7eb2ae816 ("net/virtio-user: add device emulation layer")
Cc: jianfeng.tan@intel.com
Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/net/virtio/virtio_user/virtio_user_dev.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
  

Comments

Tiwei Bie Jan. 7, 2020, 1:41 a.m. UTC | #1
On Mon, Jan 06, 2020 at 11:18:37AM -0800, Stephen Hemminger wrote:
> Valgrind complains that virtio_user is calling close(-1).
> Fix this by adding check in virtio that is similar to existing code.
> 
> Fixes: 37a7eb2ae816 ("net/virtio-user: add device emulation layer")
> Cc: jianfeng.tan@intel.com
> Cc: stable@dpdk.org
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
>  drivers/net/virtio/virtio_user/virtio_user_dev.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)

Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
  
Maxime Coquelin Jan. 9, 2020, 3:51 p.m. UTC | #2
On 1/7/20 2:41 AM, Tiwei Bie wrote:
> On Mon, Jan 06, 2020 at 11:18:37AM -0800, Stephen Hemminger wrote:
>> Valgrind complains that virtio_user is calling close(-1).
>> Fix this by adding check in virtio that is similar to existing code.
>>
>> Fixes: 37a7eb2ae816 ("net/virtio-user: add device emulation layer")
>> Cc: jianfeng.tan@intel.com
>> Cc: stable@dpdk.org
>> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
>> ---
>>  drivers/net/virtio/virtio_user/virtio_user_dev.c | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
> 
Applied to dpdk-next-virtio/master.

Thanks,
Maxime
  

Patch

diff --git a/drivers/net/virtio/virtio_user/virtio_user_dev.c b/drivers/net/virtio/virtio_user/virtio_user_dev.c
index ea016e85d8af..ffbaa75b7e83 100644
--- a/drivers/net/virtio/virtio_user/virtio_user_dev.c
+++ b/drivers/net/virtio/virtio_user/virtio_user_dev.c
@@ -537,7 +537,8 @@  virtio_user_dev_uninit(struct virtio_user_dev *dev)
 		close(dev->kickfds[i]);
 	}
 
-	close(dev->vhostfd);
+	if (dev->vhostfd >= 0)
+		close(dev->vhostfd);
 
 	if (dev->is_server && dev->listenfd >= 0) {
 		close(dev->listenfd);