vhost: add missing check in driver registration
authorJens Freimann <jfreimann@redhat.com>
Tue, 4 Jul 2017 08:50:41 +0000 (10:50 +0200)
committerYuanhan Liu <yliu@fridaylinux.org>
Tue, 4 Jul 2017 09:11:01 +0000 (11:11 +0200)
Add a check for strdup() return value and fail gracefully if we
get a bad return code.

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

index 9720773..42b25d3 100644 (file)
@@ -613,6 +613,12 @@ rte_vhost_driver_register(const char *path, uint64_t flags)
                goto out;
        memset(vsocket, 0, sizeof(struct vhost_user_socket));
        vsocket->path = strdup(path);
+       if (vsocket->path == NULL) {
+               RTE_LOG(ERR, VHOST_CONFIG,
+                       "error: failed to copy socket path string\n");
+               free(vsocket);
+               goto out;
+       }
        TAILQ_INIT(&vsocket->conn_list);
        pthread_mutex_init(&vsocket->conn_mutex, NULL);
        vsocket->dequeue_zero_copy = flags & RTE_VHOST_USER_DEQUEUE_ZERO_COPY;