osaf/services/saf/amf/amfd/role.cc           |   6 +++++-
 osaf/services/saf/amf/amfd/sg.cc             |  24 ++++++++++++++----------
 osaf/services/saf/amf/amfd/sg_2n_fsm.cc      |   1 +
 osaf/services/saf/amf/amfd/sg_nored_fsm.cc   |  12 ++++++++----
 osaf/services/saf/amf/amfd/sg_npm_fsm.cc     |   6 +++++-
 osaf/services/saf/amf/amfd/sg_nway_fsm.cc    |  14 +++++++-------
 osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc |   4 ++--
 osaf/services/saf/amf/amfd/sgproc.cc         |   7 +++----
 osaf/services/saf/amf/amfd/sgtype.cc         |  10 +++++++---
 9 files changed, 52 insertions(+), 32 deletions(-)


* Unchecked return value (CHECKED_RETURN)
* Dereference null return value (NULL_RETURNS)
* Logically dead code (DEADCODE)
* Uninitialized scalar variable (UNINIT)
* Unnecessary header file (HFA)
* Big parameter passed by value (PASS_BY_VALUE)
* Unused pointer value (UNUSED_VALUE)

* Also, replace saAmfStgValidSuTypes with saAmfSGtValidSuTypes
  in sgtype.cc

diff --git a/osaf/services/saf/amf/amfd/role.cc 
b/osaf/services/saf/amf/amfd/role.cc
--- a/osaf/services/saf/amf/amfd/role.cc
+++ b/osaf/services/saf/amf/amfd/role.cc
@@ -66,6 +66,7 @@
 {
        uint32_t status = NCSCC_RC_SUCCESS;
        AVD_D2D_MSG *msg = evt->info.avd_msg;
+       osafassert(msg);
        AVD_ROLE_CHG_CAUSE_T cause = msg->msg_info.d2d_chg_role_req.cause;
        SaAmfHAStateT role = msg->msg_info.d2d_chg_role_req.role;
 
@@ -437,7 +438,9 @@
        }
 
        /* We are not in middle of role switch functionality, carry on with 
normal failover flow */
-       avsv_set_ckpt_role(cb, SA_AMF_HA_ACTIVE);
+       if (avsv_set_ckpt_role(cb, SA_AMF_HA_ACTIVE) != NCSCC_RC_SUCCESS) {
+               LOG_ER("%s: avsv_set_ckpt_role failed", __FUNCTION__);
+       }
 
        /* Now Dispatch all the messages from the MBCSv mail-box */
        if (NCSCC_RC_SUCCESS != (status = avsv_mbcsv_dispatch(cb, 
SA_DISPATCH_ALL))) {
@@ -643,6 +646,7 @@
        /* First check if there are any other SI's that are any other active */
        /* get the avnd from node_id */
        avnd = avd_node_find_nodeid(cb->node_id_avd);
+       osafassert(avnd);
 
        for (i_su = avnd->list_of_ncs_su; i_su != NULL; i_su = 
i_su->avnd_list_su_next) {
                if ((i_su->list_of_susi != 0) &&
diff --git a/osaf/services/saf/amf/amfd/sg.cc b/osaf/services/saf/amf/amfd/sg.cc
--- a/osaf/services/saf/amf/amfd/sg.cc
+++ b/osaf/services/saf/amf/amfd/sg.cc
@@ -67,6 +67,7 @@
 
        avsv_sanamet_init(&sg->name, &dn, "safApp");
        sg->app = avd_app_get(&dn);
+       osafassert(sg->app);
 
        avd_sg_db_add(sg);
        sg->sg_type = avd_sgtype_get(&sg->saAmfSGType);
@@ -262,7 +263,6 @@
 
 static AVD_SG *sg_create(const SaNameT *sg_name, const SaImmAttrValuesT_2 
**attributes)
 {
-       int rc = -1;
        AVD_SG *sg;
        AVD_AMF_SG_TYPE *sgt;
        SaAisErrorT error;
@@ -384,14 +384,7 @@
        else if (sg->sg_redundancy_model == SA_AMF_NO_REDUNDANCY_MODEL)
                avd_sg_nored_init(sg);
 
-       rc = 0;
-
 done:
-       if (rc != 0) {
-               avd_sg_delete(sg);
-               sg = NULL;
-       }
-
        return sg;
 }
 
@@ -735,9 +728,16 @@
                        }
 
                        if (!strcmp(attribute->attrName, "saAmfSGType")) {
+                               if (value_is_deleted) {
+                                       // only modification of saAmfSGType is 
supported
+                                       // through this code path, assert if 
this is deletion
+                                       osafassert(false);
+                               }
+                               
                                SaNameT sg_type_name = *((SaNameT *)value);
+                               
                                TRACE("saAmfSGType modified from '%s' to '%s' 
of Sg'%s'", sg->saAmfSGType.value, 
-                                               sg_type_name.value, 
sg->name.value);
+                                       sg_type_name.value, sg->name.value);
 
                                sg_type = avd_sgtype_get(&sg_type_name);
                                osafassert(NULL != sg_type);
@@ -946,7 +946,7 @@
 static uint32_t avd_sg_su_term_in_reverse(AVD_SU *su)
 {
   uint32_t rc = NCSCC_RC_SUCCESS; 
-  TRACE_ENTER2("su:'%s'", su ? su->name.value : NULL);
+  TRACE_ENTER2("su:'%s'", su->name.value);
   if (su->sg_list_su_next != NULL)
        rc = avd_sg_su_term_in_reverse(su->sg_list_su_next);
   if ((su->saAmfSUPreInstantiable == true) &&
@@ -1056,6 +1056,7 @@
 
        TRACE_ENTER2("'%s', %llu", object_name->value, op_id);
        sg = avd_sg_get(object_name);
+       osafassert(sg);
 
        if (sg->sg_ncs_spec == SA_TRUE) {
                report_admin_op_error(immOiHandle, invocation, 
SA_AIS_ERR_BAD_OPERATION, NULL,
@@ -1274,6 +1275,8 @@
                break;
        case CCBUTIL_DELETE:
                sg = avd_sg_get(&opdata->objectName);
+               osafassert(sg);
+
                if (sg->list_of_si != NULL) {
                        /* check whether there is parent app delete */
                        t_opData = ccbutil_getCcbOpDataByDN(opdata->ccbId, 
&sg->app->name);
@@ -1398,6 +1401,7 @@
 void avd_sg_constructor(void)
 {
        NCS_PATRICIA_PARAMS patricia_params;
+       memset(&patricia_params, 0, sizeof(NCS_PATRICIA_PARAMS));
 
        patricia_params.key_size = sizeof(SaNameT);
        osafassert(ncs_patricia_tree_init(&sg_db, &patricia_params) == 
NCSCC_RC_SUCCESS);
diff --git a/osaf/services/saf/amf/amfd/sg_2n_fsm.cc 
b/osaf/services/saf/amf/amfd/sg_2n_fsm.cc
--- a/osaf/services/saf/amf/amfd/sg_2n_fsm.cc
+++ b/osaf/services/saf/amf/amfd/sg_2n_fsm.cc
@@ -1517,6 +1517,7 @@
                /* assign all */
                if ((act == AVSV_SUSI_ACT_MOD) && (state == 
SA_AMF_HA_QUIESCED)) {
                        a_susi = avd_sg_2n_act_susi(cb, su->sg_of_su, &s_susi);
+                       osafassert(a_susi);
 
                        /* quiesced all and SU is in the operation list */
                        if (su->saAmfSuReadinessState == 
SA_AMF_READINESS_OUT_OF_SERVICE) {
diff --git a/osaf/services/saf/amf/amfd/sg_nored_fsm.cc 
b/osaf/services/saf/amf/amfd/sg_nored_fsm.cc
--- a/osaf/services/saf/amf/amfd/sg_nored_fsm.cc
+++ b/osaf/services/saf/amf/amfd/sg_nored_fsm.cc
@@ -1358,7 +1358,8 @@
                        i_su = sg->list_of_su;
                        while (i_su != NULL) {
                                if (i_su->list_of_susi != AVD_SU_SI_REL_NULL) {
-                                       avd_susi_mod_send(i_su->list_of_susi, 
SA_AMF_HA_QUIESCED);
+                                       if 
(avd_susi_mod_send(i_su->list_of_susi, SA_AMF_HA_QUIESCED) == NCSCC_RC_FAILURE)
+                                               return NCSCC_RC_FAILURE;
 
                                        /* add the SU to the operation list */
                                        avd_sg_su_oper_list_add(cb, i_su, 
false);
@@ -1378,7 +1379,8 @@
                        i_su = sg->list_of_su;
                        while (i_su != NULL) {
                                if (i_su->list_of_susi != AVD_SU_SI_REL_NULL) {
-                                       avd_susi_mod_send(i_su->list_of_susi, 
SA_AMF_HA_QUIESCING);
+                                       if 
(avd_susi_mod_send(i_su->list_of_susi, SA_AMF_HA_QUIESCING) == NCSCC_RC_FAILURE)
+                                               return NCSCC_RC_FAILURE;
 
                                        /* add the SU to the operation list */
                                        avd_sg_su_oper_list_add(cb, i_su, 
false);
@@ -1407,14 +1409,16 @@
                                i_su = sg->su_oper_list.su;
                                if ((i_su->list_of_susi->state == 
SA_AMF_HA_QUIESCING) &&
                                    (i_su->list_of_susi->fsm == 
AVD_SU_SI_STATE_MODIFY)) {
-                                       avd_susi_mod_send(i_su->list_of_susi, 
SA_AMF_HA_QUIESCED);
+                                       if 
(avd_susi_mod_send(i_su->list_of_susi, SA_AMF_HA_QUIESCED) == NCSCC_RC_FAILURE)
+                                               return NCSCC_RC_FAILURE;
                                }
 
                                l_suopr = i_su->sg_of_su->su_oper_list.next;
                                while (l_suopr != NULL) {
                                        if ((l_suopr->su->list_of_susi->state 
== SA_AMF_HA_QUIESCING) &&
                                            (l_suopr->su->list_of_susi->fsm == 
AVD_SU_SI_STATE_MODIFY)) {
-                                               
avd_susi_mod_send(l_suopr->su->list_of_susi, SA_AMF_HA_QUIESCED);
+                                               if 
(avd_susi_mod_send(l_suopr->su->list_of_susi, SA_AMF_HA_QUIESCED) == 
NCSCC_RC_FAILURE)
+                                                       return NCSCC_RC_FAILURE;
                                        }
 
                                        l_suopr = l_suopr->next;
diff --git a/osaf/services/saf/amf/amfd/sg_npm_fsm.cc 
b/osaf/services/saf/amf/amfd/sg_npm_fsm.cc
--- a/osaf/services/saf/amf/amfd/sg_npm_fsm.cc
+++ b/osaf/services/saf/amf/amfd/sg_npm_fsm.cc
@@ -162,7 +162,11 @@
                    (i_susi->si->list_of_sisu->si_next->su == q_su))
                        continue;
 
-               avd_susi_del_send(i_susi);
+               rc = avd_susi_del_send(i_susi);
+               if (rc != NCSCC_RC_SUCCESS) {
+                       // @todo should we stop and goto "done"?
+                       LOG_ER("avd_susi_del_send failed with %u", rc);
+               }
 
        }                       /* for (i_susi = su->list_of_susi;i_susi != 
AVD_SU_SI_REL_NULL; i_susi = i_susi->su_next) */
 
diff --git a/osaf/services/saf/amf/amfd/sg_nway_fsm.cc 
b/osaf/services/saf/amf/amfd/sg_nway_fsm.cc
--- a/osaf/services/saf/amf/amfd/sg_nway_fsm.cc
+++ b/osaf/services/saf/amf/amfd/sg_nway_fsm.cc
@@ -168,8 +168,7 @@
             curr_susi && (curr_susi->state != SA_AMF_HA_ACTIVE); curr_susi = 
curr_susi->si_next) ;
 
        if (!curr_susi) {
-               LOG_ER("%s:%u: %s (%u)", __FILE__, __LINE__, 
curr_susi->su->name.value, curr_susi->su->name.length);
-               LOG_ER("%s:%u: %s (%u)", __FILE__, __LINE__, 
curr_susi->si->name.value, curr_susi->si->name.length);
+               LOG_ER("%s:%u: curr_susi is NULL", __FILE__, __LINE__);
                rc = NCSCC_RC_FAILURE;
                goto done;
        }
@@ -457,6 +456,7 @@
                                 * handling take care of assigning the standby 
to active */
                                /* find the susi with max assigned su which 
should be by now quiesced */
                                t_susi = avd_su_susi_find(avd_cb, 
susi->si->sg_of_si->max_assigned_su, &susi->si->name);
+                               osafassert(t_susi);
                                osafassert(t_susi->state == SA_AMF_HA_QUIESCED);
 
                                if (avd_susi_del_send(t_susi) == 
NCSCC_RC_SUCCESS) {
@@ -813,8 +813,7 @@
                             curr_susi && (curr_susi->state != 
SA_AMF_HA_ACTIVE); curr_susi = curr_susi->si_next) ;
 
                        if (!curr_susi) {
-                               LOG_ER("%s:%u: %s (%u)", __FILE__, __LINE__, 
curr_susi->su->name.value, curr_susi->su->name.length);
-                               LOG_ER("%s:%u: %s (%u)", __FILE__, __LINE__, 
curr_susi->si->name.value, curr_susi->si->name.length);
+                               LOG_ER("%s:%u: curr_susi is NULL", __FILE__, 
__LINE__);
                                rc = NCSCC_RC_FAILURE;
                                goto done;
                        }
@@ -839,8 +838,7 @@
                             curr_susi && (curr_susi->state != 
SA_AMF_HA_QUIESCING); curr_susi = curr_susi->si_next) ;
 
                        if (!curr_susi) {
-                               LOG_ER("%s:%u: %s (%u)", __FILE__, __LINE__, 
curr_susi->su->name.value, curr_susi->su->name.length);
-                               LOG_ER("%s:%u: %s (%u)", __FILE__, __LINE__, 
curr_susi->si->name.value, curr_susi->si->name.length);
+                               LOG_ER("%s:%u: curr_susi is NULL", __FILE__, 
__LINE__);
                                rc = NCSCC_RC_FAILURE;
                                goto done;
                        }
@@ -1104,7 +1102,7 @@
 static AVD_SI * find_the_si_to_transfer(AVD_SG *sg, SaAmfHAStateT ha_state)
 {
        AVD_SI *si_to_transfer = NULL;
-       AVD_SU_SI_REL *susi = sg->max_assigned_su->list_of_susi;
+       AVD_SU_SI_REL *susi;
        TRACE_ENTER();
 
        if (sg->max_assigned_su == NULL) {
@@ -2068,6 +2066,7 @@
                                /* delete the quiesced assignment to max 
assigned su */
                                curr_susi = avd_su_susi_find(cb, 
su->sg_of_su->max_assigned_su,
                                                
&su->sg_of_su->si_tobe_redistributed->name);
+                               osafassert(curr_susi);
                                osafassert(curr_susi->state == 
SA_AMF_HA_QUIESCED);
 
                                if (avd_susi_del_send(curr_susi) == 
NCSCC_RC_SUCCESS) {
@@ -3057,6 +3056,7 @@
 
                        /* find the susi with max assigned su which should be 
by now quiesced */
                        t_susi = avd_su_susi_find(avd_cb, 
susi->si->sg_of_si->max_assigned_su, &susi->si->name);
+                       osafassert(t_susi);
                        osafassert(t_susi->state == SA_AMF_HA_QUIESCED);
 
                        rc = avd_susi_del_send(t_susi);
diff --git a/osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc 
b/osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc
--- a/osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc
+++ b/osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc
@@ -27,7 +27,6 @@
 #include <logtrace.h>
 
 #include <amfd.h>
-#include <imm.h>
 #include <si_dep.h>
 
 static AVD_SU *avd_get_qualified_su(AVD_SG *avd_sg, AVD_SI *avd_si, 
@@ -55,7 +54,8 @@
 
 AVD_SU *avd_sg_nacvred_su_chose_asgn(AVD_CL_CB *cb, AVD_SG *sg)
 {
-       AVD_SU *i_su, *qualified_su;
+       AVD_SU *i_su = NULL;
+       AVD_SU *qualified_su = NULL;
        AVD_SI *i_si;
        bool l_flag, next_si_tobe_assigned = true;
        AVD_SUS_PER_SI_RANK_INDX i_idx;
diff --git a/osaf/services/saf/amf/amfd/sgproc.cc 
b/osaf/services/saf/amf/amfd/sgproc.cc
--- a/osaf/services/saf/amf/amfd/sgproc.cc
+++ b/osaf/services/saf/amf/amfd/sgproc.cc
@@ -63,7 +63,6 @@
 {
        uint32_t rc = NCSCC_RC_FAILURE;
        AVD_SU_SI_REL *susi;
-       AVD_COMP_CSI_REL *compcsi;
        AVD_COMP *l_comp;
        AVD_CSI *l_csi;
        AVD_COMPCS_TYPE *cst;
@@ -106,7 +105,7 @@
                l_comp = su->list_of_comp;
                while (l_comp != NULL) {
                        if ((l_comp->assign_flag == false) &&
-                           (NULL != (cst = 
avd_compcstype_find_match(&l_csi->saAmfCSType, l_comp))))
+                           (avd_compcstype_find_match(&l_csi->saAmfCSType, 
l_comp) != NULL))
                                break;
 
                        l_comp = l_comp->su_comp_next;
@@ -119,7 +118,7 @@
                        continue;
                }
 
-               if ((compcsi = avd_compcsi_create(susi, l_csi, l_comp, true)) 
== NULL) {
+               if (avd_compcsi_create(susi, l_csi, l_comp, true) == NULL) {
                        /* free all the CSI assignments and end this loop */
                        avd_compcsi_delete(cb, susi, true);
                        l_csi = l_csi->si_list_of_csi_next;
@@ -162,7 +161,7 @@
                                                                continue ;
                                                        }
                                                }
-                                               if ((compcsi = 
avd_compcsi_create(susi, l_csi, l_comp, true)) == NULL) {
+                                               if (avd_compcsi_create(susi, 
l_csi, l_comp, true) == NULL) {
                                                        /* free all the CSI 
assignments and end this loop */
                                                        avd_compcsi_delete(cb, 
susi, true);
                                                        l_comp = 
l_comp->su_comp_next;
diff --git a/osaf/services/saf/amf/amfd/sgtype.cc 
b/osaf/services/saf/amf/amfd/sgtype.cc
--- a/osaf/services/saf/amf/amfd/sgtype.cc
+++ b/osaf/services/saf/amf/amfd/sgtype.cc
@@ -77,7 +77,7 @@
 static void sgtype_delete(AVD_AMF_SG_TYPE *sg_type)
 {
        (void)ncs_patricia_tree_del(&sgtype_db, &sg_type->tree_node);
-       delete sg_type->saAmfStgValidSuTypes;
+       delete [] sg_type->saAmfSGtValidSuTypes;
        delete sg_type;
 }
 
@@ -257,6 +257,7 @@
 
  done:
        if (rc != 0) {
+               delete [] sgt->saAmfSGtValidSuTypes;
                delete sgt;
                sgt = NULL;
        }
@@ -298,7 +299,7 @@
        while (immutil_saImmOmSearchNext_2(searchHandle, &dn, 
(SaImmAttrValuesT_2 ***)&attributes) == SA_AIS_OK) {
                if (!is_config_valid(&dn, attributes, NULL))
                        goto done2;
-               if (( sgt = avd_sgtype_get(&dn)) == NULL) {
+               if (avd_sgtype_get(&dn) == NULL) {
                        if ((sgt = sgtype_create(&dn, attributes)) == NULL)
                                goto done2;
 
@@ -381,6 +382,7 @@
                break;
        case CCBUTIL_DELETE:
                sgt = avd_sgtype_get(&opdata->objectName);
+               osafassert(sgt);
                if (sgt->list_of_sg != NULL) {
                        /* check whether there exists a delete operation for 
                         * each of the SG in the sg_type list in the current 
CCB 
@@ -424,6 +426,7 @@
        TRACE_ENTER2("CCB ID %llu, '%s'", opdata->ccbId, 
opdata->objectName.value);
 
        AVD_AMF_SG_TYPE *sgt = avd_sgtype_get(&opdata->objectName);
+       osafassert(sgt);
 
        while ((attr_mod = opdata->param.modify.attrMods[i++]) != NULL) {
                bool value_is_deleted; 
@@ -494,7 +497,8 @@
 void avd_sgtype_constructor(void)
 {
        NCS_PATRICIA_PARAMS patricia_params;
-
+       memset(&patricia_params, 0, sizeof(NCS_PATRICIA_PARAMS));
+       
        patricia_params.key_size = sizeof(SaNameT);
        osafassert(ncs_patricia_tree_init(&sgtype_db, &patricia_params) == 
NCSCC_RC_SUCCESS);
 

------------------------------------------------------------------------------
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