From: Pan Bian <bianpan2...@163.com>

[ 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-bianpan2...@163.com
Signed-off-by: Pan Bian <bianpan2...@163.com>
Reviewed-by: Jason Gunthorpe <j...@mellanox.com>
Signed-off-by: Jason Gunthorpe <j...@mellanox.com>
Signed-off-by: Sasha Levin <sas...@kernel.org>
---
 drivers/infiniband/hw/i40iw/i40iw_cm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/infiniband/hw/i40iw/i40iw_cm.c 
b/drivers/infiniband/hw/i40iw/i40iw_cm.c
index b1df93b69df44..fa7a5ff498c73 100644
--- a/drivers/infiniband/hw/i40iw/i40iw_cm.c
+++ b/drivers/infiniband/hw/i40iw/i40iw_cm.c
@@ -2074,9 +2074,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;
        }
-- 
2.25.1

Reply via email to