vhost: fix device leak on connection add failure
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: stable@dpdk.org Reported-by: David Marchand <david.marchand@redhat.com> Signed-off-by: Ilya Maximets <i.maximets@samsung.com> Reviewed-by: David Marchand <david.marchand@redhat.com> Reviewed-by: Jens Freimann <jfreimann@redhat.com> Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
This commit is contained in:
parent
1e9868885f
commit
a21510e750
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user