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

Reply via email to