This patch fixes a file descriptor leak which happens
in the error path of vhost_user_set_vring_kick().

Fixes: 4796ad63ba1f ("examples/vhost: import userspace vhost application")
Cc: sta...@dpdk.org

Signed-off-by: Maxime Coquelin <maxime.coque...@redhat.com>
---
 lib/librte_vhost/vhost_user.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c
index 7dfda15991..de06b051be 100644
--- a/lib/librte_vhost/vhost_user.c
+++ b/lib/librte_vhost/vhost_user.c
@@ -1855,8 +1855,12 @@ vhost_user_set_vring_kick(struct virtio_net **pdev, 
struct VhostUserMsg *msg,
 
        /* Interpret ring addresses only when ring is started. */
        dev = translate_ring_addresses(dev, file.index);
-       if (!dev)
+       if (!dev) {
+               if (file.fd != VIRTIO_INVALID_EVENTFD)
+                       close(file.fd);
+
                return RTE_VHOST_MSG_RESULT_ERR;
+       }
 
        *pdev = dev;
 
-- 
2.26.2

Reply via email to