> -----Original Message----- > From: Maxime Coquelin <[email protected]> > Sent: Thursday, November 5, 2020 7:46 PM > To: [email protected]; Ding, Xuan <[email protected]>; > [email protected]; Yigit, Ferruh <[email protected]>; > [email protected]; Xia, Chenbo <[email protected]> > Cc: [email protected]; Maxime Coquelin <[email protected]> > Subject: [PATCH 3/3] vhost: fix fd leak in kick setup > > 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: [email protected] > > Signed-off-by: Maxime Coquelin <[email protected]> > --- > 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
Reviewed-by: Chenbo Xia <[email protected]>

