osaf/services/saf/amf/amfd/cluster.cc | 3 +--
osaf/services/saf/amf/amfd/comp.cc | 17 ++++++++++-------
osaf/services/saf/amf/amfd/compcstype.cc | 5 +++++
osaf/services/saf/amf/amfd/comptype.cc | 7 +++++--
osaf/services/saf/amf/amfd/csi.cc | 20 ++++++++++++++++++--
osaf/services/saf/amf/amfd/csiattr.cc | 2 ++
osaf/services/saf/amf/amfd/cstype.cc | 4 +++-
osaf/services/saf/amf/amfd/ctcstype.cc | 14 +++++---------
8 files changed, 49 insertions(+), 23 deletions(-)
* Unnecessary header file (HFA)
* Logically dead code (DEADCODE)
* Dereference null return value (NULL_RETURNS)
* Uninitialized scalar variable (UNINIT)
* Unused pointer value (UNUSED_VALUE)
diff --git a/osaf/services/saf/amf/amfd/cluster.cc
b/osaf/services/saf/amf/amfd/cluster.cc
--- a/osaf/services/saf/amf/amfd/cluster.cc
+++ b/osaf/services/saf/amf/amfd/cluster.cc
@@ -24,7 +24,6 @@
#include <cluster.h>
#include <imm.h>
#include <evt.h>
-#include <proc.h>
/* Singleton cluster object */
static AVD_CLUSTER _avd_cluster;
@@ -201,7 +200,7 @@
SaAisErrorT avd_cluster_config_get(void)
{
SaAisErrorT error, rc = SA_AIS_ERR_FAILED_OPERATION;
- SaImmSearchHandleT searchHandle;
+ SaImmSearchHandleT searchHandle = 0;
SaImmSearchParametersT_2 searchParam;
SaNameT dn;
const SaImmAttrValuesT_2 **attributes;
diff --git a/osaf/services/saf/amf/amfd/comp.cc
b/osaf/services/saf/amf/amfd/comp.cc
--- a/osaf/services/saf/amf/amfd/comp.cc
+++ b/osaf/services/saf/amf/amfd/comp.cc
@@ -184,6 +184,11 @@
avsv_sanamet_init(&comp->comp_info.name, &dn, "safSu");
comp->su = avd_su_get(&dn);
+ if (comp->su == NULL) {
+ LOG_ER("component '%s' references an invalid SU",
+ comp->comp_info.name.value);
+ osafassert(comp->su);
+ }
avd_comp_db_add(comp);
comp->comp_type = avd_comptype_get(&comp->saAmfCompType);
@@ -412,7 +417,6 @@
static AVD_COMP *comp_create(const SaNameT *dn, const SaImmAttrValuesT_2
**attributes)
{
- int rc = -1;
AVD_COMP *comp;
char *cmd_argv;
const char *str;
@@ -585,13 +589,7 @@
comp->max_num_csi_actv = -1; // TODO
comp->max_num_csi_stdby = -1; // TODO
- rc = 0;
done:
- if (rc != 0) {
- avd_comp_delete(comp);
- comp = NULL;
- }
-
return comp;
}
@@ -788,6 +786,7 @@
TRACE_ENTER();
comp = avd_comp_get(&opdata->objectName);
+ osafassert(comp);
while ((attr_mod = opdata->param.modify.attrMods[i++]) != NULL) {
const SaImmAttrValuesT_2 *attribute = &attr_mod->modAttr;
@@ -1028,6 +1027,7 @@
TRACE_ENTER();
comp = avd_comp_get(&opdata->objectName);
+ osafassert(comp);
if (comp->su->saAmfSUAdminState != SA_AMF_ADMIN_LOCKED_INSTANTIATION) {
report_ccb_validation_error(opdata, "SU admin state is not
locked instantiation required for deletion");
@@ -1085,6 +1085,7 @@
param.act = AVSV_OBJ_OPR_MOD;
comp = avd_comp_get(&opdata->objectName);
+ osafassert(comp);
param.name = comp->comp_info.name;
comp_type = avd_comptype_get(&comp->saAmfCompType);
@@ -1103,6 +1104,7 @@
if ((attr_mod->modType == SA_IMM_ATTR_VALUES_DELETE) ||
(attribute->attrValues == NULL)) {
/* Attribute value is deleted, revert to default value
*/
value_is_deleted = true;
+ osafassert(comp_type);
} else {
/* Attribute value is modified */
value_is_deleted = false;
@@ -1573,6 +1575,7 @@
void avd_comp_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(&comp_db, &patricia_params) ==
NCSCC_RC_SUCCESS);
diff --git a/osaf/services/saf/amf/amfd/compcstype.cc
b/osaf/services/saf/amf/amfd/compcstype.cc
--- a/osaf/services/saf/amf/amfd/compcstype.cc
+++ b/osaf/services/saf/amf/amfd/compcstype.cc
@@ -251,6 +251,7 @@
avsv_sanamet_init(dn, &comp_name, "safComp=");
comp = avd_comp_get(&comp_name);
+ osafassert(comp);
p = strchr(cstype_name, ',') + 1;
p = strchr(p, ',');
@@ -259,6 +260,7 @@
"%s,%s", cstype_name, comp->comp_type->name.value);
ctcstype = avd_ctcstype_get(&ctcstype_name);
+ osafassert(ctcstype);
if
(immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfCompNumMaxActiveCSIs"),
attributes, 0,
&num_max_act_csi) != SA_AIS_OK) {
@@ -397,6 +399,8 @@
break;
case CCBUTIL_DELETE:
cst = avd_compcstype_get(&opdata->objectName);
+ // cst should be present in compcstype_db
+ osafassert(cst);
avd_compcstype_delete(&cst);
break;
default:
@@ -434,6 +438,7 @@
void avd_compcstype_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(&compcstype_db, &patricia_params) ==
NCSCC_RC_SUCCESS);
diff --git a/osaf/services/saf/amf/amfd/comptype.cc
b/osaf/services/saf/amf/amfd/comptype.cc
--- a/osaf/services/saf/amf/amfd/comptype.cc
+++ b/osaf/services/saf/amf/amfd/comptype.cc
@@ -389,6 +389,8 @@
break;
case CCBUTIL_DELETE:
comp_type = avd_comptype_get(&opdata->objectName);
+ // comp_type should be present in comptype_db
+ osafassert(comp_type);
if (NULL != comp_type->list_of_comp) {
/* check whether there exists a delete operation for
* each of the Comp in the comp_type list in the
current CCB
@@ -422,7 +424,8 @@
void avd_comptype_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(&comptype_db, &patricia_params) ==
NCSCC_RC_SUCCESS);
@@ -438,7 +441,7 @@
{
SaAisErrorT rc;
const SaImmAttrValuesT_2 **attributes;
- SaImmAccessorHandleT accessorHandle;
+ SaImmAccessorHandleT accessorHandle = 0;
SaNameT dn = {0, "safRdn=compGlobalAttributes,safApp=safAmfService" };
dn.length = strlen((char *)dn.value);
diff --git a/osaf/services/saf/amf/amfd/csi.cc
b/osaf/services/saf/amf/amfd/csi.cc
--- a/osaf/services/saf/amf/amfd/csi.cc
+++ b/osaf/services/saf/amf/amfd/csi.cc
@@ -36,6 +36,8 @@
temp = csi->list_attributes;
while (temp != NULL) {
avd_csi_remove_csiattr(csi, temp);
+ // Coverity will complain csi->list_attributes has
+ // already been freed but it appears to be a false positive
temp = csi->list_attributes;
}
@@ -304,6 +306,9 @@
if
(immutil_getAttr(const_cast<SaImmAttrNameT>("saAmfCSIDependencies"),
attributes, i,
&new_csi_dep->csi_dep_name_value) !=
SA_AIS_OK) {
LOG_ER("Get saAmfCSIDependencies FAILED
for '%s'", csi->name.value);
+ // make sure we don't leak any memory if
+ // saAmfCSIDependencies can't be read
+ delete new_csi_dep;
goto done;
}
found = csi_add_csidep(csi,new_csi_dep);
@@ -317,7 +322,9 @@
}
csi->cstype = avd_cstype_get(&csi->saAmfCSType);
+ osafassert(csi->cstype);
csi->si = avd_si_get(si_name);
+ osafassert(csi->si);
avd_cstype_add_csi(csi);
avd_si_add_csi(csi);
@@ -540,6 +547,7 @@
AVD_CSI *csi;
SaNameT cstype_name = *(SaNameT*)
attr_mod->modAttr.attrValues[0];
csi = avd_csi_get(&opdata->objectName);
+ osafassert(csi);
if(SA_AMF_ADMIN_LOCKED != csi->si->saAmfSIAdminState) {
report_ccb_validation_error(opdata, "Parent SI
is not in locked state, SI state '%d'",
csi->si->saAmfSIAdminState);
@@ -600,6 +608,8 @@
}
}
+ osafassert(csi);
+
if(AVD_SG_FSM_STABLE != csi->si->sg_of_si->sg_fsm_state) {
report_ccb_validation_error(opdata, "SG('%s') fsm state('%u')
is not in AVD_SG_FSM_STABLE(0)",
csi->si->sg_of_si->name.value,
csi->si->sg_of_si->sg_fsm_state);
@@ -695,6 +705,8 @@
}
goto done;
}
+
+ osafassert(csi);
/* Check whether si has been assigned to any SU. */
if ((NULL != csi->si->list_of_sisu) &&
@@ -765,6 +777,7 @@
TRACE_ENTER2("CCB ID %llu, '%s'", opdata->ccbId,
opdata->objectName.value);
csi = avd_csi_get(&opdata->objectName);
+ osafassert(csi);
while ((attr_mod = opdata->param.modify.attrMods[i++]) != NULL) {
if (!strcmp(attr_mod->modAttr.attrName, "saAmfCSType")) {
struct avd_cstype *csi_type;
@@ -772,6 +785,7 @@
TRACE("saAmfCSType modified from '%s' to '%s' for
Csi'%s'", csi->saAmfCSType.value,
cstype_name.value, csi->name.value);
csi_type = avd_cstype_get(&cstype_name);
+ osafassert(csi_type);
avd_cstype_remove_csi(csi);
csi->saAmfCSType = cstype_name;
csi->cstype = csi_type;
@@ -815,6 +829,7 @@
* we might get compcsi create checkpoint and csi will be
created as part of checkpoint processing
*/
csi = csi_create(&opdata->objectName);
+ osafassert(csi);
}
csi_get_attr_and_add_to_model(csi, opdata->param.create.attrValues,
opdata->param.create.parentName);
@@ -842,7 +857,7 @@
t_comp = t_sisu->su->list_of_comp;
while (t_comp != NULL) {
if ((t_comp->assign_flag == false) &&
- (NULL != (cst =
avd_compcstype_find_match(&csi->saAmfCSType, t_comp)))) {
+
(avd_compcstype_find_match(&csi->saAmfCSType, t_comp) != NULL)) {
/* We have found the component. Assign
csi to it. */
break;
}
@@ -987,7 +1002,7 @@
{
AVD_COMP_CSI_REL *compcsi = NULL;
- if ((csi == NULL) && (comp == NULL)) {
+ if ((csi == NULL) || (comp == NULL)) {
LOG_ER("Either csi or comp is NULL");
return NULL;
}
@@ -1232,6 +1247,7 @@
void avd_csi_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(&csi_db, &patricia_params) ==
NCSCC_RC_SUCCESS);
diff --git a/osaf/services/saf/amf/amfd/csiattr.cc
b/osaf/services/saf/amf/amfd/csiattr.cc
--- a/osaf/services/saf/amf/amfd/csiattr.cc
+++ b/osaf/services/saf/amf/amfd/csiattr.cc
@@ -507,6 +507,7 @@
csiattr = csiattr_create(&opdata->objectName,
opdata->param.create.attrValues);
csi = avd_csi_get(opdata->param.create.parentName);
+ osafassert(csi);
avd_csi_add_csiattr(csi, csiattr);
}
@@ -527,6 +528,7 @@
csi_dn.length = strlen((char *)&csi_dn.value);
csi = avd_csi_get(&csi_dn);
+ osafassert(csi);
csiattr_dn_to_csiattr_name(&opdata->objectName, &csi_attr_name);
/* create new name-value pairs for the modified csi attribute */
diff --git a/osaf/services/saf/amf/amfd/cstype.cc
b/osaf/services/saf/amf/amfd/cstype.cc
--- a/osaf/services/saf/amf/amfd/cstype.cc
+++ b/osaf/services/saf/amf/amfd/cstype.cc
@@ -190,7 +190,7 @@
if (!is_config_valid(&dn, NULL))
goto done2;
- if ((cst = avd_cstype_get(&dn)) == NULL){
+ if (avd_cstype_get(&dn) == NULL){
if ((cst = cstype_create(&dn, attributes)) == NULL)
goto done2;
@@ -233,6 +233,7 @@
break;
case CCBUTIL_DELETE:
cst = avd_cstype_get(&opdata->objectName);
+ osafassert(cst);
if (cst->list_of_csi != NULL) {
/* check whether there exists a delete operation for
* each of the CSI in the cs_type list in the current
CCB
@@ -287,6 +288,7 @@
void avd_cstype_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(&cstype_db, &patricia_params) ==
NCSCC_RC_SUCCESS);
diff --git a/osaf/services/saf/amf/amfd/ctcstype.cc
b/osaf/services/saf/amf/amfd/ctcstype.cc
--- a/osaf/services/saf/amf/amfd/ctcstype.cc
+++ b/osaf/services/saf/amf/amfd/ctcstype.cc
@@ -65,7 +65,6 @@
static AVD_CTCS_TYPE *ctcstype_create(const SaNameT *dn, const
SaImmAttrValuesT_2 **attributes)
{
AVD_CTCS_TYPE *ctcstype;
- int rc = -1;
SaAisErrorT error;
TRACE_ENTER2("'%s'", dn->value);
@@ -87,12 +86,6 @@
SA_AIS_OK)
ctcstype->saAmfCtDefNumMaxStandbyCSIs = -1; /* no limit */
- rc = 0;
-
- if (rc != 0) {
- delete ctcstype;
- ctcstype = NULL;
- }
return ctcstype;
}
@@ -143,7 +136,7 @@
if (!is_config_valid(&dn, attributes, NULL))
goto done2;
- if ((ctcstype = avd_ctcstype_get(&dn)) == NULL ) {
+ if (avd_ctcstype_get(&dn) == NULL) {
if ((ctcstype = ctcstype_create(&dn, attributes)) ==
NULL)
goto done2;
@@ -200,6 +193,8 @@
break;
case CCBUTIL_DELETE:
ctcstype = avd_ctcstype_get(&opdata->objectName);
+ // ctcstype should be in ctcstype_db
+ osafassert(ctcstype);
ctcstype_delete(ctcstype);
break;
default:
@@ -213,7 +208,8 @@
void avd_ctcstype_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(&ctcstype_db, &patricia_params) ==
NCSCC_RC_SUCCESS);
avd_class_impl_set(const_cast<SaImmClassNameT>("SaAmfCtCsType"), NULL,
NULL, ctcstype_ccb_completed_cb, ctcstype_ccb_apply_cb);
------------------------------------------------------------------------------
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