]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
RDMA/i40iw: Fix potential use after free
authorPan Bian <bianpan2016@163.com>
Wed, 6 Nov 2019 06:44:11 +0000 (14:44 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 1 Oct 2020 11:14:27 +0000 (13:14 +0200)
[ Upstream commit da046d5f895fca18d63b15ac8faebd5bf784e23a ]

Release variable dst after logging dst->error to avoid possible use after
free.

Link: https://lore.kernel.org/r/1573022651-37171-1-git-send-email-bianpan2016@163.com
Signed-off-by: Pan Bian <bianpan2016@163.com>
Reviewed-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/infiniband/hw/i40iw/i40iw_cm.c

index 4321b9e3dbb4bae0289d5d57d9be4ed5f4eee72f..0273d0404e74080ed1cf8294d9efab96c118ac68 100644 (file)
@@ -2071,9 +2071,9 @@ static int i40iw_addr_resolve_neigh_ipv6(struct i40iw_device *iwdev,
        dst = i40iw_get_dst_ipv6(&src_addr, &dst_addr);
        if (!dst || dst->error) {
                if (dst) {
-                       dst_release(dst);
                        i40iw_pr_err("ip6_route_output returned dst->error = %d\n",
                                     dst->error);
+                       dst_release(dst);
                }
                return rc;
        }