osaf/services/saf/amf/amfnd/cbq.cc |  13 ++++++++++---
 osaf/services/saf/amf/amfnd/chc.cc |  10 +++++++---
 2 files changed, 17 insertions(+), 6 deletions(-)


* Unchecked return value (CHECKED_RETURN)
* Logically dead code (DEADCODE)
* Dereference null return value (NULL_RETURNS)

diff --git a/osaf/services/saf/amf/amfnd/cbq.cc 
b/osaf/services/saf/amf/amfnd/cbq.cc
--- a/osaf/services/saf/amf/amfnd/cbq.cc
+++ b/osaf/services/saf/amf/amfnd/cbq.cc
@@ -413,6 +413,7 @@
                if (!csi) {
                        AVND_COMP_CSI_REC *temp_csi = NULL;
                        temp_csi = m_AVND_COMPDB_REC_CSI_GET_FIRST(*comp);
+                       osafassert(temp_csi);
 
                        if (cbk_rec->cbk_info->param.csi_set.ha != 
temp_csi->si->curr_state) {
 
@@ -892,8 +893,8 @@
        return rec;
 
  error:
-       if (rec)
-               avnd_comp_cbq_rec_del(cb, comp, rec);
+       // rec will be non-NULL
+       avnd_comp_cbq_rec_del(cb, comp, rec);
 
        return 0;
 }
@@ -958,15 +959,20 @@
 void avnd_comp_cbq_finalize(AVND_CB *cb, AVND_COMP *comp, SaAmfHandleT hdl, 
MDS_DEST *dest)
 {
        AVND_COMP_CBK *curr = (comp)->cbk_list, *prv = 0;
+       uint32_t rc = NCSCC_RC_SUCCESS;
 
        /* scan the entire comp-cbk list & delete the matching records */
        while (curr) {
+               osafassert(curr->cbk_info);
                if ((curr->cbk_info->hdl == hdl) && !memcmp(&curr->dest, dest, 
sizeof(MDS_DEST))) {
                        if (curr->cbk_info && (curr->cbk_info->type == 
AVSV_AMF_COMP_TERM)
                            && (!m_AVND_COMP_TYPE_IS_PROXIED(comp))) {
                                m_AVND_COMP_TERM_FAIL_SET(comp);
                                m_AVND_SEND_CKPT_UPDT_ASYNC_UPDT(cb, comp, 
AVND_CKPT_COMP_FLAG_CHANGE);
-                               avnd_comp_clc_fsm_run(cb, comp, 
AVND_COMP_CLC_PRES_FSM_EV_CLEANUP);
+                               rc = avnd_comp_clc_fsm_run(cb, comp, 
AVND_COMP_CLC_PRES_FSM_EV_CLEANUP);
+                               if (rc != NCSCC_RC_SUCCESS) {
+                                       LOG_ER("%s: '%s' cleanup failed", 
__FUNCTION__, comp->name.value);
+                               }
                        }
 
                        avnd_comp_cbq_rec_pop_and_del(cb, comp, curr, true);
@@ -1091,6 +1097,7 @@
                                if (!csi) {
                                        AVND_COMP_CSI_REC *temp_csi = NULL;
                                        temp_csi = 
m_AVND_COMPDB_REC_CSI_GET_FIRST(*comp);
+                                       osafassert(temp_csi);
 
                                        if (cbk->cbk_info->param.csi_set.ha != 
temp_csi->si->curr_state) {
                                                
avnd_comp_cbq_rec_pop_and_del(cb, comp, cbk, true);
diff --git a/osaf/services/saf/amf/amfnd/chc.cc 
b/osaf/services/saf/amf/amfnd/chc.cc
--- a/osaf/services/saf/amf/amfnd/chc.cc
+++ b/osaf/services/saf/amf/amfnd/chc.cc
@@ -543,8 +543,7 @@
        return rec;
 
  err:
-       if (rec)
-               avnd_comp_hc_rec_del(cb, comp, rec);
+       avnd_comp_hc_rec_del(cb, comp, rec);
        TRACE_LEAVE();
        return 0;
 }
@@ -565,6 +564,8 @@
 ******************************************************************************/
 void avnd_comp_hc_rec_del(AVND_CB *cb, AVND_COMP *comp, AVND_COMP_HC_REC *rec)
 {
+       uint32_t rc = NCSCC_RC_SUCCESS;
+       
        /* remove the association with hdl-mngr */
        if (rec->opq_hdl)
                ncshm_destroy_hdl(NCS_SERVICE_ID_AVND, rec->opq_hdl);
@@ -575,7 +576,10 @@
        }
 
        /* unlink from the comp-hc list */
-       m_AVND_COMPDB_REC_HC_REM(*comp, *rec);
+       rc = m_AVND_COMPDB_REC_HC_REM(*comp, *rec);
+       if (rc != NCSCC_RC_SUCCESS) {
+               LOG_ER("Failed to unlink from comp-hc list: %u", rc);
+       }
 
        /* free the record */
        delete rec;

------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to