qed: Use after free in qed_rdma_free()
PATCH 1/1 qed: Use after free in qed_rdma_free()
We're dereferencing "p_hwfn->p_rdma_info" but that is freed on the line before in qed_rdma_resc_free(p_hwfn).
drivers/net/ethernet/qlogic/qed/qed_rdma.c +1 -1
@@ -379,8 +379,8 @@ static void qed_rdma_free(struct qed_hwfn *p_hwfn)DP_VERBOSE (p_hwfn,QED_MSG_RDMA ,"Freeing RDMA\n" );qed_rdma_free_reserved_lkey (p_hwfn); -qed_rdma_resc_free (p_hwfn);qed_cxt_free_proto_ilt (p_hwfn, p_hwfn->p_rdma_info->proto); +qed_rdma_resc_free (p_hwfn); }static void qed_rdma_get_guid (struct qed_hwfn *p_hwfn,u8 *guid)
Quoted 29 lines
From: Dan Carpenter [mailto:[email protected]]
Sent: Tuesday, March 13, 2018 11:10 AM
To: Elior, Ariel <[email protected]>; Kalderon, Michal <[email protected]>
Cc: Dept-Eng Everest Linux L2 <[email protected]>; [email protected]; [email protected]
Subject: [PATCH net] qed: Use after free inqed_rdma_free()We're dereferencing "
p_hwfn->p_rdma_info" but that is freed on the line before inqed_rdma_resc_free(p_hwfn).Fixes 9de506a547c0 ("qed: Free RoCE ILT Memory on rmmod qedr")Signed-off-by Dan Carpenter <[email protected]>drivers/net/ethernet/qlogic/qed/qed_rdma.c +1
-1@@ -379,8 +379,8 @@ static void qed_rdma_free(struct qed_hwfn *p_hwfn)DP_VERBOSE (p_hwfn,QED_MSG_RDMA ,"Freeing RDMA\n" );qed_rdma_free_reserved_lkey (p_hwfn); -qed_rdma_resc_free (p_hwfn);qed_cxt_free_proto_ilt (p_hwfn, p_hwfn->p_rdma_info->proto); +qed_rdma_resc_free (p_hwfn); }
Quoted 1 line
static void
qed_rdma_get_guid(struct qed_hwfn *p_hwfn, u8 *guid)
Thanks,
From: Dan Carpenter <[email protected]>
Date: Tue, 13 Mar 2018 12:09:38 +0300
Quoted 5 lines
We're dereferencing "
p_hwfn->p_rdma_info" but that is freed on the line before inqed_rdma_resc_free(p_hwfn).Fixes 9de506a547c0 ("qed: Free RoCE ILT Memory on rmmod qedr")Signed-off-by Dan Carpenter <[email protected]>
Applied, thank you.