]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 29 Dec 2021 10:50:29 +0000 (11:50 +0100)
[ Upstream commit bee90911e0138c76ee67458ac0d58b38a3190f65 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/infiniband/hw/qib/qib_user_sdma.c

index 0dc15f95e7626c13f47296c0d964ee70b9a7b6d7..2d0b992579d6ff07d36d3302a555ac3e02920e85 100644 (file)
@@ -946,7 +946,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;