osaf/services/saf/amf/amfd/ndfsm.cc | 4 +++-
osaf/services/saf/amf/amfd/ndproc.cc | 5 ++++-
osaf/services/saf/amf/amfd/node.cc | 12 ++++++++----
osaf/services/saf/amf/amfd/nodegroup.cc | 18 +++++++++++++++---
osaf/services/saf/amf/amfd/nodeswbundle.cc | 2 +-
osaf/services/saf/amf/amfd/ntf.cc | 6 +++---
6 files changed, 34 insertions(+), 13 deletions(-)
* Unchecked return value (CHECKED_RETURN)
* Dereference null return value (NULL_RETURNS)
* Uninitialized scalar variable (UNINIT)
* Unnecessary header file (HFA)
* Big parameter passed by value (PASS_BY_VALUE)
diff --git a/osaf/services/saf/amf/amfd/ndfsm.cc
b/osaf/services/saf/amf/amfd/ndfsm.cc
--- a/osaf/services/saf/amf/amfd/ndfsm.cc
+++ b/osaf/services/saf/amf/amfd/ndfsm.cc
@@ -566,7 +566,9 @@
(su_ptr->sg_of_su->sg_redundancy_model ==
SA_AMF_NPM_REDUNDANCY_MODEL) ||
(su_ptr->sg_of_su->sg_redundancy_model ==
SA_AMF_N_WAY_ACTIVE_REDUNDANCY_MODEL)) {
if (AVD_SU_SI_STATE_MODIFY ==
su_ptr->list_of_susi->fsm) {
- avd_snd_susi_msg(cb, su_ptr,
AVD_SU_SI_REL_NULL, AVSV_SUSI_ACT_MOD, false, NULL);
+ if (avd_snd_susi_msg(cb, su_ptr,
AVD_SU_SI_REL_NULL, AVSV_SUSI_ACT_MOD, false, NULL) != NCSCC_RC_SUCCESS) {
+ LOG_ER("%s: avd_snd_susi_msg
failed, %s", __FUNCTION__, su_ptr->name.value);
+ }
continue;
}
}
diff --git a/osaf/services/saf/amf/amfd/ndproc.cc
b/osaf/services/saf/amf/amfd/ndproc.cc
--- a/osaf/services/saf/amf/amfd/ndproc.cc
+++ b/osaf/services/saf/amf/amfd/ndproc.cc
@@ -155,7 +155,10 @@
for (su = node->list_of_ncs_su; su != NULL; su =
su->avnd_list_su_next) {
if ((su->saAmfSUAdminState == SA_AMF_ADMIN_UNLOCKED) ||
(su->saAmfSUAdminState == SA_AMF_ADMIN_LOCKED)) {
- avd_snd_presence_msg(cb, su, false);
+ if (avd_snd_presence_msg(cb, su, false) !=
NCSCC_RC_SUCCESS) {
+ LOG_ER("%s: Failed to send
Instantiation order of '%s'",
+ __FUNCTION__, su->name.value);
+ }
}
}
diff --git a/osaf/services/saf/amf/amfd/node.cc
b/osaf/services/saf/amf/amfd/node.cc
--- a/osaf/services/saf/amf/amfd/node.cc
+++ b/osaf/services/saf/amf/amfd/node.cc
@@ -259,9 +259,9 @@
** If called at new active at failover, the object is found in the DB
** but needs to get configuration attributes initialized.
*/
- if (NULL == (node = avd_node_get(dn))) {
- if ((node = avd_node_new(dn)) == NULL)
- goto done;
+ node = avd_node_get(dn);
+ if (node == NULL) {
+ node = avd_node_new(dn);
} else
TRACE("already created, refreshing config...");
@@ -303,7 +303,7 @@
rc = 0;
done:
- if (rc != 0) {
+ if (rc != 0 && node != NULL) {
avd_node_delete(node);
node = NULL;
}
@@ -437,6 +437,9 @@
CcbUtilOperationData_t *t_opData;
TRACE_ENTER2("'%s'", opdata->objectName.value);
+
+ // node must not be NULL
+ osafassert(node);
if (node->node_info.member) {
report_ccb_validation_error(opdata, "Node '%s' is still cluster
member", opdata->objectName.value);
@@ -1358,6 +1361,7 @@
void avd_node_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(&node_name_db, &patricia_params) ==
NCSCC_RC_SUCCESS);
diff --git a/osaf/services/saf/amf/amfd/nodegroup.cc
b/osaf/services/saf/amf/amfd/nodegroup.cc
--- a/osaf/services/saf/amf/amfd/nodegroup.cc
+++ b/osaf/services/saf/amf/amfd/nodegroup.cc
@@ -20,7 +20,6 @@
#include <logtrace.h>
#include <amfd.h>
-#include <cluster.h>
#include <imm.h>
static NCS_PATRICIA_TREE nodegroup_db;
@@ -280,6 +279,10 @@
TRACE_ENTER();
ng = avd_ng_get(&opdata->objectName);
+ if (ng == NULL) {
+ report_ccb_validation_error(opdata, "ng modify: nodegroup
cannot be found");
+ goto done;
+ }
while ((mod = opdata->param.modify.attrMods[i++]) != NULL) {
if (mod->modType == SA_IMM_ATTR_VALUES_REPLACE) {
@@ -390,12 +393,18 @@
AVD_AVND *node;
AVD_AMF_NG *ng = avd_ng_get(&opdata->objectName);
unsigned int i;
-
+
+ if (ng == NULL) {
+ report_ccb_validation_error(opdata, "ng delete: nodegroup
cannot be found");
+ goto done;
+ }
+
TRACE_ENTER2("%u", ng->number_nodes);
/* for all nodes in node group */
for (i = 0; i < ng->number_nodes; i++) {
node = avd_node_get(&ng->saAmfNGNodeList[i]);
+ osafassert(node);
TRACE("%s", node->name.value);
@@ -477,7 +486,8 @@
TRACE_ENTER();
ng = avd_ng_get(&opdata->objectName);
-
+ osafassert(ng);
+
while ((mod = opdata->param.modify.attrMods[i++]) != NULL) {
switch (mod->modType) {
case SA_IMM_ATTR_VALUES_ADD: {
@@ -545,6 +555,7 @@
break;
case CCBUTIL_DELETE:
ng = avd_ng_get(&opdata->objectName);
+ osafassert(ng);
ng_delete(ng);
TRACE("deleted %s", opdata->objectName.value);
break;
@@ -561,6 +572,7 @@
void avd_ng_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(&nodegroup_db, &patricia_params) ==
NCSCC_RC_SUCCESS);
diff --git a/osaf/services/saf/amf/amfd/nodeswbundle.cc
b/osaf/services/saf/amf/amfd/nodeswbundle.cc
--- a/osaf/services/saf/amf/amfd/nodeswbundle.cc
+++ b/osaf/services/saf/amf/amfd/nodeswbundle.cc
@@ -20,7 +20,6 @@
#include <immutil.h>
#include <logtrace.h>
#include <amfd.h>
-#include <cluster.h>
#include <imm.h>
/**
@@ -112,6 +111,7 @@
/* Check if any comps are referencing this bundle */
avsv_sanamet_init(bundle_dn, &node_dn, "safAmfNode=");
node = avd_node_get(&node_dn);
+ osafassert(node);
if (!is_swbdl_delete_ok_for_node(bundle_dn, &node_dn,
node->list_of_ncs_su, opdata))
return 0;
diff --git a/osaf/services/saf/amf/amfd/ntf.cc
b/osaf/services/saf/amf/amfd/ntf.cc
--- a/osaf/services/saf/amf/amfd/ntf.cc
+++ b/osaf/services/saf/amf/amfd/ntf.cc
@@ -470,7 +470,7 @@
SaAisErrorT fill_ntf_header_part_avd(SaNtfNotificationHeaderT
*notificationHeader,
SaNtfEventTypeT eventType,
- SaNameT comp_name,
+ const SaNameT& comp_name,
SaUint8T *add_text,
SaUint16T majorId,
SaUint16T minorId,
@@ -528,7 +528,7 @@
}
uint32_t sendAlarmNotificationAvd(AVD_CL_CB *avd_cb,
- SaNameT ntf_object,
+ const SaNameT& ntf_object,
SaUint8T *add_text,
SaUint16T majorId,
SaUint16T minorId,
@@ -614,7 +614,7 @@
}
uint32_t sendStateChangeNotificationAvd(AVD_CL_CB *avd_cb,
- SaNameT ntf_object,
+ const SaNameT& ntf_object,
SaUint8T *add_text,
SaUint16T majorId,
SaUint16T minorId,
------------------------------------------------------------------------------
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