goto free_path;
}
s = nvme_lookup_subsystem(h, name, subsysnqn);
+ free(subsysnqn);
if (!s) {
- free(subsysnqn);
errno = ENOMEM;
goto free_path;
}
- free(subsysnqn);
if (!s->name) {
ret = nvme_init_subsystem(s, name, path);
if (ret < 0)
- return ret;
+ goto free_path;
}
nvme_subsystem_scan_namespaces(s);
c->address = nvme_get_attr(path, "address");
if (!c->address) {
- free(path);
errno = ENXIO;
ret = -1;
goto out_free_name;
subsys_name);
if (ret > 0)
ret = nvme_init_subsystem(s, subsys_name, path);
+ else
+ path = NULL;
if (ret < 0) {
nvme_msg(LOG_ERR, "Failed to init subsystem %s\n", path);
- free(path);
+ if (path)
+ free(path);
goto out_free_subsys;
}
}
return NULL;
}
s = nvme_lookup_subsystem(h, NULL, subsysnqn);
+ free(subsysnqn);
if (!s) {
free(path);
errno = ENOMEM;
}
nvme_ctrl_scan_namespaces(c);
nvme_ctrl_scan_paths(c);
- free(path);
return 0;
}