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