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

[ Upstream commit 960657b732e1ce21b07be5ab48a7ad3913d72ba4 ]

Move the release operation after error log to avoid possible use after
free.

Link: 
https://lore.kernel.org/r/1573021434-18768-1-git-send-email-bianpan2...@163.com
Signed-off-by: Pan Bian <bianpan2...@163.com>
Acked-by: Michal KalderonĀ <michal.kalde...@marvell.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/qedr/qedr_iw_cm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/infiniband/hw/qedr/qedr_iw_cm.c 
b/drivers/infiniband/hw/qedr/qedr_iw_cm.c
index a7a926b7b5628..6dea49e11f5f0 100644
--- a/drivers/infiniband/hw/qedr/qedr_iw_cm.c
+++ b/drivers/infiniband/hw/qedr/qedr_iw_cm.c
@@ -490,10 +490,10 @@ qedr_addr6_resolve(struct qedr_dev *dev,
 
        if ((!dst) || dst->error) {
                if (dst) {
-                       dst_release(dst);
                        DP_ERR(dev,
                               "ip6_route_output returned dst->error = %d\n",
                               dst->error);
+                       dst_release(dst);
                }
                return -EINVAL;
        }
-- 
2.25.1

Reply via email to