nvme-tcp: fix possible leakage during error flow
authorMax Gurtovoy <maxg@mellanox.com>
Sun, 13 Oct 2019 16:57:38 +0000 (19:57 +0300)
committerKeith Busch <kbusch@kernel.org>
Tue, 15 Oct 2019 13:47:29 +0000 (22:47 +0900)
During nvme_tcp_setup_cmd_pdu error flow, one must call nvme_cleanup_cmd
since it's symmetric to nvme_setup_cmd.

Signed-off-by: Max Gurtovoy <maxg@mellanox.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Keith Busch <kbusch@kernel.org>
drivers/nvme/host/tcp.c

index 820dac10fa9e97caf6e305df31031657c8198611..770dbcbc999e0bff81b8643644cab20599a0c2e3 100644 (file)
@@ -2136,6 +2136,7 @@ static blk_status_t nvme_tcp_setup_cmd_pdu(struct nvme_ns *ns,
 
        ret = nvme_tcp_map_data(queue, rq);
        if (unlikely(ret)) {
+               nvme_cleanup_cmd(rq);
                dev_err(queue->ctrl->ctrl.device,
                        "Failed to map data (%d)\n", ret);
                return ret;