IB/qib: Fix memory leak in qib_user_sdma_queue_pkts()
authorJosé Expósito <jose.exposito89@gmail.com>
Wed, 8 Dec 2021 17:52:38 +0000 (18:52 +0100)
committerJason Gunthorpe <jgg@nvidia.com>
Wed, 15 Dec 2021 00:05:13 +0000 (20:05 -0400)
The wrong goto label was used for the error case and missed cleanup of the
pkt allocation.

Fixes: d39bf40e55e6 ("IB/qib: Protect from buffer overflow in struct qib_user_sdma_pkt fields")
Link: https://lore.kernel.org/r/20211208175238.29983-1-jose.exposito89@gmail.com
Addresses-Coverity-ID: 1493352 ("Resource leak")
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
Acked-by: Mike Marciniszyn <mike.marciniszyn@cornelisnetworks.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/qib/qib_user_sdma.c

index ac11943..bf2f30d 100644 (file)
@@ -941,7 +941,7 @@ static int qib_user_sdma_queue_pkts(const struct qib_devdata *dd,
                                               &addrlimit) ||
                            addrlimit > type_max(typeof(pkt->addrlimit))) {
                                ret = -EINVAL;
-                               goto free_pbc;
+                               goto free_pkt;
                        }
                        pkt->addrlimit = addrlimit;