From: Daniel Verkamp Date: Mon, 12 Jun 2017 21:29:04 +0000 (-0700) Subject: vhost: clean up per-socket mutex X-Git-Tag: spdx-start~2714 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=3cb502b31066d13fa4d22f7f1eec5a8459ef1e8f;p=dpdk.git vhost: clean up per-socket mutex vsocket->conn_mutex was allocated with pthread_mutex_init() but never freed with pthread_mutex_destroy(). This is a potential memory leak, depending on how pthread_mutex_t is implemented. Signed-off-by: Daniel Verkamp Acked-by: Yuanhan Liu --- diff --git a/lib/librte_vhost/socket.c b/lib/librte_vhost/socket.c index c7f99b08fd..9720773853 100644 --- a/lib/librte_vhost/socket.c +++ b/lib/librte_vhost/socket.c @@ -636,6 +636,7 @@ rte_vhost_driver_register(const char *path, uint64_t flags) vsocket->reconnect = !(flags & RTE_VHOST_USER_NO_RECONNECT); if (vsocket->reconnect && reconn_tid == 0) { if (vhost_user_reconnect_init() < 0) { + pthread_mutex_destroy(&vsocket->conn_mutex); free(vsocket->path); free(vsocket); goto out; @@ -646,6 +647,7 @@ rte_vhost_driver_register(const char *path, uint64_t flags) } ret = create_unix_socket(vsocket); if (ret < 0) { + pthread_mutex_destroy(&vsocket->conn_mutex); free(vsocket->path); free(vsocket); goto out; @@ -724,6 +726,7 @@ rte_vhost_driver_unregister(const char *path) } pthread_mutex_unlock(&vsocket->conn_mutex); + pthread_mutex_destroy(&vsocket->conn_mutex); free(vsocket->path); free(vsocket);