Invalid read is from the following - avnd_evt_mds_ava_dn_evh() (amf/amfnd/comp.cc) - avsv_create_association_class_dn() (amf/common/util.c) Other changes are to fix cppcheck error report --- src/amf/amfnd/comp.cc | 16 ++++++++-------- src/amf/common/util.c | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/amf/amfnd/comp.cc b/src/amf/amfnd/comp.cc index 38b9224..facbace 100644 --- a/src/amf/amfnd/comp.cc +++ b/src/amf/amfnd/comp.cc @@ -428,8 +428,9 @@ uint32_t avnd_evt_mds_ava_dn_evh(AVND_CB *cb, AVND_EVT *evt) { entry from the cbk list and delete the cbq */ m_AVND_COMP_CBQ_INV_GET(comp, comp->term_cbq_inv_value, cbk_rec); comp->term_cbq_inv_value = 0; + uint32_t opq_hdl = cbk_rec? cbk_rec->opq_hdl: 0; rc = avnd_comp_clc_fsm_run(cb, comp, AVND_COMP_CLC_PRES_FSM_EV_TERM_SUCC); - if (cbk_rec) avnd_comp_cbq_rec_pop_and_del(cb, comp, cbk_rec->opq_hdl, false); + if (cbk_rec) avnd_comp_cbq_rec_pop_and_del(cb, comp, opq_hdl, false); goto done; } /* found the matching comp; trigger error processing */ @@ -2228,9 +2229,7 @@ uint32_t avnd_amf_resp_send(AVND_CB *cb, AVSV_AMF_API_TYPE type, AVND_MSG msg; AVSV_ND2ND_AVND_MSG *avnd_msg; uint32_t rc = NCSCC_RC_SUCCESS; - MDS_DEST i_to_dest; AVSV_NDA_AVA_MSG *temp_ptr = nullptr; - NODE_ID node_id = 0; MDS_SYNC_SND_CTXT temp_ctxt; TRACE_ENTER(); @@ -2267,8 +2266,8 @@ uint32_t avnd_amf_resp_send(AVND_CB *cb, AVSV_AMF_API_TYPE type, msg.info.avnd->type = AVND_AVND_AVA_MSG; msg.type = AVND_MSG_AVND; /* Send it to AvND */ - node_id = m_NCS_NODE_ID_FROM_MDS_DEST(*dest); - i_to_dest = avnd_get_mds_dest_from_nodeid(cb, node_id); + NODE_ID node_id = m_NCS_NODE_ID_FROM_MDS_DEST(*dest); + MDS_DEST i_to_dest = avnd_get_mds_dest_from_nodeid(cb, node_id); rc = avnd_avnd_mds_send(cb, i_to_dest, &msg); } else { /* now send the response */ @@ -2646,7 +2645,8 @@ void avnd_comp_cmplete_all_assignment(AVND_CB *cb, AVND_COMP *comp) { */ temp_csi = m_AVND_COMPDB_REC_CSI_GET_FIRST(*comp); - if (cbk->cbk_info->param.csi_set.ha != temp_csi->si->curr_state) { + if (temp_csi && + (cbk->cbk_info->param.csi_set.ha != temp_csi->si->curr_state)) { avnd_comp_cbq_rec_pop_and_del(cb, comp, cbk->opq_hdl, true); continue; } @@ -2788,7 +2788,7 @@ uint32_t comp_restart_initiate(AVND_COMP *comp) { rc = avnd_comp_curr_info_del(cb, it.second); if (NCSCC_RC_SUCCESS != rc) goto done; - // unregister the contained comp + // unregister the contained comp rc = avnd_comp_unregister_contained(cb, it.second); if (NCSCC_RC_SUCCESS != rc) goto done; @@ -2956,7 +2956,7 @@ void avnd_comp_pres_state_set(const AVND_CB *cb, AVND_COMP *comp, (SA_AMF_PRESENCE_ORPHANED == prv_st)))) { if (cb->is_avd_down == false) { avnd_di_uns32_upd_send(AVSV_SA_AMF_COMP, saAmfCompPresenceState_ID, - comp->name.c_str(), comp->pres); + comp->name, comp->pres); } } diff --git a/src/amf/common/util.c b/src/amf/common/util.c index ec76c32..d17b766 100644 --- a/src/amf/common/util.c +++ b/src/amf/common/util.c @@ -240,12 +240,12 @@ void avsv_create_association_class_dn(const SaNameT *child_dn, } if (dn) { + TRACE("dn: %s", buf); osaf_extended_name_steal(buf, dn); } - TRACE_LEAVE2("child_dn: %s parent_dn: %s dn: %s", + TRACE_LEAVE2("child_dn: %s parent_dn: %s", child_dn_ptr ? child_dn_ptr : "no child dn", - parent_dn_ptr ? parent_dn_ptr : "no parent dn", - buf); + parent_dn_ptr ? parent_dn_ptr : "no parent dn"); } void avsv_sanamet_init_from_association_dn(const SaNameT *haystack, SaNameT *dn, -- 2.7.4 _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel