+7
−5
Loading
Poll group holds lists of qpairs in different states and when we got rdma completion with error, we iterate these lists to find a qpair which qp_num matches. qp_num is stored inside of ibv_qp which belongs to spdk_rdma_qp structure. When nvme_rdma_qpair is disconnected, pointer to spdk_rdma_qp is cleaned but qpair may still exist in poll group list and when we start searhing for qpair by qp_num we may dereference NULL pointer. This patch adds a check that pointer to spdk_rdma_qp is valid before dereferencing it. To minimize boilerplate code, wrap all check in macro. Add unit test to verify this fix. Signed-off-by:Alexey Marchuk <alexeymar@mellanox.com> Change-Id: I1925f93efb633fd5c176323d3bbd3641a1a632a9 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9050 Tested-by:
SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Reviewed-by:
Changpeng Liu <changpeng.liu@intel.com> Reviewed-by:
Jim Harris <james.r.harris@intel.com>