RDMA/i40iw: Fix potential use after free

[ 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>
This commit is contained in:
Pan Bian 2019-11-06 14:44:11 +08:00 committed by Greg Kroah-Hartman
parent f3ebf81ee6
commit 3161ea6733

View File

@ -2074,9 +2074,9 @@ static int i40iw_addr_resolve_neigh_ipv6(struct i40iw_device *iwdev,
dst = i40iw_get_dst_ipv6(&src_addr, &dst_addr); dst = i40iw_get_dst_ipv6(&src_addr, &dst_addr);
if (!dst || dst->error) { if (!dst || dst->error) {
if (dst) { if (dst) {
dst_release(dst);
i40iw_pr_err("ip6_route_output returned dst->error = %d\n", i40iw_pr_err("ip6_route_output returned dst->error = %d\n",
dst->error); dst->error);
dst_release(dst);
} }
return rc; return rc;
} }