diff --git a/lib/vhost/vhost.c b/lib/vhost/vhost.c index b6e168122..49c0aa9cf 100644 --- a/lib/vhost/vhost.c +++ b/lib/vhost/vhost.c @@ -753,6 +753,14 @@ spdk_vhost_dev_register(struct spdk_vhost_dev *vdev, const char *name, const cha vdev->name = strdup(name); vdev->path = strdup(path); + if (vdev->name == NULL || vdev->path == NULL) { + free(vdev->name); + free(vdev->path); + rte_vhost_driver_unregister(path); + rc = -EIO; + goto out; + } + vdev->cpumask = cpumask; vdev->registered = true; vdev->backend = backend;