vhost: check return of mutex initialization
authorJens Freimann <jfreimann@redhat.com>
Tue, 4 Jul 2017 08:50:43 +0000 (10:50 +0200)
committerYuanhan Liu <yliu@fridaylinux.org>
Tue, 4 Jul 2017 09:30:54 +0000 (11:30 +0200)
Check return value of pthread_mutex_init(). Also destroy
mutex in case of other erros before returning.

Signed-off-by: Jens Freimann <jfreimann@redhat.com>
Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
lib/librte_vhost/socket.c

index b2b9a64..57b86c0 100644 (file)
@@ -445,13 +445,22 @@ vhost_user_reconnect_init(void)
 {
        int ret;
 
-       pthread_mutex_init(&reconn_list.mutex, NULL);
+       ret = pthread_mutex_init(&reconn_list.mutex, NULL);
+       if (ret < 0) {
+               RTE_LOG(ERR, VHOST_CONFIG, "failed to initialize mutex");
+               return ret;
+       }
        TAILQ_INIT(&reconn_list.head);
 
        ret = pthread_create(&reconn_tid, NULL,
                             vhost_user_client_reconnect, NULL);
-       if (ret < 0)
+       if (ret < 0) {
                RTE_LOG(ERR, VHOST_CONFIG, "failed to create reconnect thread");
+               if (pthread_mutex_destroy(&reconn_list.mutex)) {
+                       RTE_LOG(ERR, VHOST_CONFIG,
+                               "failed to destroy reconnect mutex");
+               }
+       }
 
        return ret;
 }