On Thu, Apr 11, 2019 at 12:23 PM Ilya Maximets <i.maxim...@samsung.com> wrote:
> Need to destroy allocated device if application fails to > add new connection or we have fdset failure. > > Fixes: acbff5c67ea7 ("vhost: fix crash when exceeding file descriptors") > Fixes: efba12a78ddf ("vhost: add user callbacks for socket open/close") > Cc: sta...@dpdk.org > > Reported-by: David Marchand <david.march...@redhat.com> > Signed-off-by: Ilya Maximets <i.maxim...@samsung.com> > --- > lib/librte_vhost/socket.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/lib/librte_vhost/socket.c b/lib/librte_vhost/socket.c > index 43f091d10..c34668004 100644 > --- a/lib/librte_vhost/socket.c > +++ b/lib/librte_vhost/socket.c > @@ -240,7 +240,7 @@ vhost_user_add_connection(int fd, struct > vhost_user_socket *vsocket) > RTE_LOG(ERR, VHOST_CONFIG, > "failed to add vhost user connection with > fd %d\n", > fd); > - goto err; > + goto err_cleanup; > } > } > > @@ -257,7 +257,7 @@ vhost_user_add_connection(int fd, struct > vhost_user_socket *vsocket) > if (vsocket->notify_ops->destroy_connection) > vsocket->notify_ops->destroy_connection(conn->vid); > > - goto err; > + goto err_cleanup; > } > > pthread_mutex_lock(&vsocket->conn_mutex); > @@ -267,6 +267,8 @@ vhost_user_add_connection(int fd, struct > vhost_user_socket *vsocket) > fdset_pipe_notify(&vhost_user.fdset); > return; > > +err_cleanup: > + vhost_destroy_device(vid); > err: > free(conn); > close(fd); > -- > 2.17.1 > Thanks Ilya. Reviewed-by: David Marchand <david.march...@redhat.com> -- David Marchand