From 3cb502b31066d13fa4d22f7f1eec5a8459ef1e8f Mon Sep 17 00:00:00 2001 From: Daniel Verkamp Date: Mon, 12 Jun 2017 14:29:04 -0700 Subject: [PATCH] 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 --- lib/librte_vhost/socket.c | 3 +++ 1 file changed, 3 insertions(+) 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); -- 2.20.1