]> www.infradead.org Git - users/sagi/libnvme.git/commitdiff
mi: call nvme_mi_close on endpoint error path
authorJeremy Kerr <jk@codeconstruct.com.au>
Mon, 21 Nov 2022 08:36:25 +0000 (16:36 +0800)
committerJeremy Kerr <jk@codeconstruct.com.au>
Tue, 22 Nov 2022 08:08:04 +0000 (16:08 +0800)
We need to do more than free() on endpoint close, so call nvme_mi_close
on endpoint creation failure.

Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au>
src/nvme/mi-mctp.c
src/nvme/mi.c

index e74d46f72f56b4afac847aa1bcf73bc934f3a5f8..b3239ccbf27afbbd7dee6bd0121b88573e105a67 100644 (file)
@@ -516,7 +516,7 @@ nvme_mi_ep_t nvme_mi_open_mctp(nvme_root_t root, unsigned int netid, __u8 eid)
 
 err_free_ep:
        errno_save = errno;
-       free(ep);
+       nvme_mi_close(ep);
        free(mctp);
        errno = errno_save;
        return NULL;
index 1a34208e6f656fe7ee19541c7e18013600dd8fd0..1310330ec91a237726a48c13f9025f0ca5678e66 100644 (file)
@@ -1517,7 +1517,7 @@ void nvme_mi_close(nvme_mi_ep_t ep)
        nvme_mi_for_each_ctrl_safe(ep, ctrl, tmp)
                nvme_mi_close_ctrl(ctrl);
 
-       if (ep->transport->close)
+       if (ep->transport && ep->transport->close)
                ep->transport->close(ep);
        list_del(&ep->root_entry);
        free(ep);