After removing the active subscription result, mds finds the next active subscription result by using the deleted result. It led an invalid read. Solution is to get the first active subscription result rather than the next active result. --- src/mds/mds_svc_op.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/mds/mds_svc_op.c b/src/mds/mds_svc_op.c index c5a8d6d19..2398ad63d 100644 --- a/src/mds/mds_svc_op.c +++ b/src/mds/mds_svc_op.c @@ -1198,7 +1198,7 @@ uint32_t mds_svc_op_vdest_mxn_active_delete(const MCM_SVC_INFO *info) { callback_info.arch_word = MDS_SVC_ARCHWORD_TYPE_UNSPECIFIED; status = mds_subtn_res_tbl_query_next_active( info->local_svc_hdl, info->svc_id, info->vdest, - subtn_result_info, &next_active_result_info); + NULL, &next_active_result_info); if (status == NCSCC_RC_FAILURE) { /* No other active present */ mds_svc_op_subtn_res_tbl_remove_active(info); @@ -1568,7 +1568,7 @@ uint32_t mds_svc_op_vdest_nway_active_delete(const MCM_SVC_INFO *info) { if (active_adest == info->adest) { status = mds_subtn_res_tbl_query_next_active( info->local_svc_hdl, info->svc_id, - info->vdest, subtn_result_info, + info->vdest, NULL, &next_active_result_info); if (status == NCSCC_RC_FAILURE) { MCM_SVC_INFO callback_info = *info; -- 2.25.1 _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel