Re: [PATCH net] qed: Use after free in qed_rdma_free()
From: Dan Carpenter Date: Tue, 13 Mar 2018 12:09:38 +0300 > We're dereferencing "p_hwfn->p_rdma_info" but that is freed on the line > before in qed_rdma_resc_free(p_hwfn). > > Fixes: 9de506a547c0 ("qed: Free RoCE ILT Memory on rmmod qedr") > Signed-off-by: Dan Carpenter Applied, thank you.
RE: [PATCH net] qed: Use after free in qed_rdma_free()
> From: Dan Carpenter [mailto:dan.carpen...@oracle.com] > Sent: Tuesday, March 13, 2018 11:10 AM > To: Elior, Ariel ; Kalderon, Michal > > Cc: Dept-Eng Everest Linux L2 ; > netdev@vger.kernel.org; kernel-janit...@vger.kernel.org > Subject: [PATCH net] 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). > > Fixes: 9de506a547c0 ("qed: Free RoCE ILT Memory on rmmod qedr") > Signed-off-by: Dan Carpenter > > diff --git a/drivers/net/ethernet/qlogic/qed/qed_rdma.c > b/drivers/net/ethernet/qlogic/qed/qed_rdma.c > index f3ee6538b553..a411f9c702a1 100644 > --- a/drivers/net/ethernet/qlogic/qed/qed_rdma.c > +++ b/drivers/net/ethernet/qlogic/qed/qed_rdma.c > @@ -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) Thanks, Acked-by: Michal Kalderon
[PATCH net] 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). Fixes: 9de506a547c0 ("qed: Free RoCE ILT Memory on rmmod qedr") Signed-off-by: Dan Carpenter diff --git a/drivers/net/ethernet/qlogic/qed/qed_rdma.c b/drivers/net/ethernet/qlogic/qed/qed_rdma.c index f3ee6538b553..a411f9c702a1 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_rdma.c +++ b/drivers/net/ethernet/qlogic/qed/qed_rdma.c @@ -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)