Looks OK
Not tested

/Ingvar

-----Original Message-----
From: Robert Apanowicz 
Sent: den 17 februari 2015 09:19
To: Ingvar Bergström; Bertil Engelholm
Cc: [email protected]
Subject: [PATCH 1 of 1] smf: defects detected by Coverity tool fixed [#1154]

 osaf/libs/agents/saf/smfa/smfa_utils.c               |  4 +++-
 osaf/libs/common/smfsv/smfsv_evt.c                   |  6 +++---
 osaf/services/saf/smfsv/smfd/SmfCallback.cc          |  1 -
 osaf/services/saf/smfsv/smfd/SmfCampState.cc         |  1 -
 osaf/services/saf/smfsv/smfd/SmfCampaign.cc          |  1 -
 osaf/services/saf/smfsv/smfd/SmfCampaignXmlParser.cc |  6 ++++--
 osaf/services/saf/smfsv/smfd/SmfProcedureThread.cc   |  3 ++-
 osaf/services/saf/smfsv/smfd/SmfStepState.cc         |  3 ---
 osaf/services/saf/smfsv/smfd/SmfStepTypes.cc         |  1 -
 osaf/services/saf/smfsv/smfd/SmfUpgradeMethod.cc     |  1 -
 osaf/services/saf/smfsv/smfd/smfd_amf.c              |  1 -
 osaf/services/saf/smfsv/smfd/smfd_campaign_oi.cc     |  3 ---
 osaf/services/saf/smfsv/smfd/smfd_evt.c              |  7 ++++---
 osaf/services/saf/smfsv/smfd/smfd_main.c             |  3 ++-
 osaf/services/saf/smfsv/smfd/smfd_mds.c              |  2 +-
 osaf/services/saf/smfsv/smfd/smfd_smfnd.c            |  8 ++++----
 osaf/services/saf/smfsv/smfnd/Makefile.am            |  3 +--
 osaf/services/saf/smfsv/smfnd/smfnd_evt.c            |  1 -
 osaf/services/saf/smfsv/smfnd/smfnd_mds.c            |  3 +--
 19 files changed, 25 insertions(+), 33 deletions(-)


All SMF defects detected by Coverity tool fixed.

diff --git a/osaf/libs/agents/saf/smfa/smfa_utils.c 
b/osaf/libs/agents/saf/smfa/smfa_utils.c
--- a/osaf/libs/agents/saf/smfa/smfa_utils.c
+++ b/osaf/libs/agents/saf/smfa/smfa_utils.c
@@ -704,7 +704,9 @@ uint32_t smfa_cbk_list_cleanup(SaSmfHand
                                                        prev_cbk = cbk_list;
                                                }else {
                                                        free(cbk_list);
-                                                       cbk_list = 
prev_cbk->next_cbk;
+                                                       cbk_list = NULL;
+                                                       if(prev_cbk)
+                                                               cbk_list = 
prev_cbk->next_cbk;
                                                }
                                        }
                                }else{
diff --git a/osaf/libs/common/smfsv/smfsv_evt.c 
b/osaf/libs/common/smfsv/smfsv_evt.c
--- a/osaf/libs/common/smfsv/smfsv_evt.c
+++ b/osaf/libs/common/smfsv/smfsv_evt.c
@@ -595,8 +595,8 @@ err:
 
 uint32_t smf_enc_cbk_req(SMF_CBK_EVT *i_evt, NCS_UBAID *o_ub)  {
-    uint32_t      rc = NCSCC_RC_SUCCESS;
     uint8_t       *p8;
+    uint64_t length;
 
     p8 = ncs_enc_reserve_space(o_ub, 8);
     if (p8 == NULL)
@@ -622,7 +622,7 @@ uint32_t smf_enc_cbk_req(SMF_CBK_EVT *i_
         LOG_ER("ncs_enc_reserve_space failed");
         goto err;
     }
-    uint64_t length = osaf_extended_name_length(&i_evt->object_name);
+    length = osaf_extended_name_length(&i_evt->object_name);
     if (length > 0xffffffff) {
         LOG_ER("object name too long");
         goto err;
@@ -668,7 +668,7 @@ uint32_t smf_enc_cbk_req(SMF_CBK_EVT *i_
            ncs_encode_n_octets_in_uba(o_ub, (uint8_t*) i_evt->params, 
                                        i_evt->params_len);
     }
-    return rc;
+    return NCSCC_RC_SUCCESS;
 err:
     return NCSCC_RC_FAILURE;
 }
diff --git a/osaf/services/saf/smfsv/smfd/SmfCallback.cc 
b/osaf/services/saf/smfsv/smfd/SmfCallback.cc
--- a/osaf/services/saf/smfsv/smfd/SmfCallback.cc
+++ b/osaf/services/saf/smfsv/smfd/SmfCallback.cc
@@ -22,7 +22,6 @@
 #include <stdlib.h>
 #include <sys/stat.h>
 #include <sys/poll.h>
-#include <poll.h>
 #include <new>
 #include <vector>
 #include <string>
diff --git a/osaf/services/saf/smfsv/smfd/SmfCampState.cc 
b/osaf/services/saf/smfsv/smfd/SmfCampState.cc
--- a/osaf/services/saf/smfsv/smfd/SmfCampState.cc
+++ b/osaf/services/saf/smfsv/smfd/SmfCampState.cc
@@ -34,7 +34,6 @@
 #include "SmfProcedureThread.hh"
 #include <immutil.h>
 #include <sstream>
-#include <iostream>
 /* ========================================================================
  *   DEFINITIONS
  * ========================================================================
diff --git a/osaf/services/saf/smfsv/smfd/SmfCampaign.cc 
b/osaf/services/saf/smfsv/smfd/SmfCampaign.cc
--- a/osaf/services/saf/smfsv/smfd/SmfCampaign.cc
+++ b/osaf/services/saf/smfsv/smfd/SmfCampaign.cc
@@ -34,7 +34,6 @@
 #include "saAis.h"
 #include <saSmf.h>
 #include <logtrace.h>
-#include <immutil.h>
 #include <saf_error.h>
 #include "osaf_extended_name.h"
 
diff --git a/osaf/services/saf/smfsv/smfd/SmfCampaignXmlParser.cc 
b/osaf/services/saf/smfsv/smfd/SmfCampaignXmlParser.cc
--- a/osaf/services/saf/smfsv/smfd/SmfCampaignXmlParser.cc
+++ b/osaf/services/saf/smfsv/smfd/SmfCampaignXmlParser.cc
@@ -47,8 +47,6 @@
 #include "SmfUpgradeProcedure.hh"
 #include "SmfUpgradeMethod.hh"
 #include "SmfTargetTemplate.hh"
-#include "SmfUpgradeStep.hh"
-#include "SmfCbkUtil.hh"
 
 #define OSAF_MAX_RDN_LENGTH 64
 
@@ -2889,6 +2887,8 @@ SmfCampaignXmlParser::parseAdminOpAction
                                                                 TRACE("value = 
%s", s);
                                                                 value = 
strdup(s);
                                                                 xmlFree(s);
+                                                                // only single 
value is supported, break out from loop
+                                                                break;
                                                         }
                                                 }
 
@@ -2958,6 +2958,8 @@ SmfCampaignXmlParser::parseAdminOpAction
                                                                 TRACE("value = 
%s", s);
                                                                 value = 
strdup(s);
                                                                 xmlFree(s);
+                                                                // only single 
value is supported, break out from loop
+                                                                break;
                                                         }
                                                 }
 
diff --git a/osaf/services/saf/smfsv/smfd/SmfProcedureThread.cc 
b/osaf/services/saf/smfsv/smfd/SmfProcedureThread.cc
--- a/osaf/services/saf/smfsv/smfd/SmfProcedureThread.cc
+++ b/osaf/services/saf/smfsv/smfd/SmfProcedureThread.cc
@@ -762,7 +762,8 @@ SmfProcedureThread::main(void)
 
                this->handleEvents();   /* runs forever until stopped */
 
-                this->deleteImmHandle();
+               if(this->deleteImmHandle() != SA_AIS_OK)
+                       LOG_WA("SmfProcedureThread::main(): deleteImmHandle 
failed");
 
                /* Mark the thread terminated */
                if(m_semaphore != NULL) {
diff --git a/osaf/services/saf/smfsv/smfd/SmfStepState.cc 
b/osaf/services/saf/smfsv/smfd/SmfStepState.cc
--- a/osaf/services/saf/smfsv/smfd/SmfStepState.cc
+++ b/osaf/services/saf/smfsv/smfd/SmfStepState.cc
@@ -26,9 +26,6 @@
 #include "SmfUpgradeStep.hh"
 #include "SmfStepState.hh"
 #include "SmfStepTypes.hh"
-#include "SmfUtils.hh"
-#include "immutil.h"
-#include "smfd.h"
 
 /* ========================================================================
  *   DEFINITIONS
diff --git a/osaf/services/saf/smfsv/smfd/SmfStepTypes.cc 
b/osaf/services/saf/smfsv/smfd/SmfStepTypes.cc
--- a/osaf/services/saf/smfsv/smfd/SmfStepTypes.cc
+++ b/osaf/services/saf/smfsv/smfd/SmfStepTypes.cc
@@ -1432,7 +1432,6 @@ SmfStepTypeNodeReboot::rollback()
 
        /* Check if callback is required to be invoked.*/
        cbkList = m_step->getProcedure()->getCbksBeforeLock();
-       m_step->checkAndInvokeCallback(cbkList, SA_SMF_ROLLBACK);
        if (m_step->checkAndInvokeCallback(cbkList, SA_SMF_ROLLBACK) == false) {
                 LOG_ER("checkAndInvokeCallback returned false for list 
cbksBeforeLock, step=%s",m_step->getRdn().c_str());
                 return false;
diff --git a/osaf/services/saf/smfsv/smfd/SmfUpgradeMethod.cc 
b/osaf/services/saf/smfsv/smfd/SmfUpgradeMethod.cc
--- a/osaf/services/saf/smfsv/smfd/SmfUpgradeMethod.cc
+++ b/osaf/services/saf/smfsv/smfd/SmfUpgradeMethod.cc
@@ -21,7 +21,6 @@
  */
 #include "logtrace.h"
 #include "SmfUpgradeMethod.hh"
-#include "SmfUpgradeStep.hh"
 /* ========================================================================
  *   DEFINITIONS
  * ========================================================================
diff --git a/osaf/services/saf/smfsv/smfd/smfd_amf.c 
b/osaf/services/saf/smfsv/smfd/smfd_amf.c
--- a/osaf/services/saf/smfsv/smfd/smfd_amf.c
+++ b/osaf/services/saf/smfsv/smfd/smfd_amf.c
@@ -20,7 +20,6 @@
  */
 
 #include "smfd.h"
-#include "immutil.h"
 
 /****************************************************************************
  * Name          : amf_active_state_handler
diff --git a/osaf/services/saf/smfsv/smfd/smfd_campaign_oi.cc 
b/osaf/services/saf/smfsv/smfd/smfd_campaign_oi.cc
--- a/osaf/services/saf/smfsv/smfd/smfd_campaign_oi.cc
+++ b/osaf/services/saf/smfsv/smfd/smfd_campaign_oi.cc
@@ -34,14 +34,11 @@
 
 #include "immutil.h"
 #include "smfd.h"
-#include "smfsv_defs.h"
 #include "SmfCampaign.hh"
 #include "SmfUpgradeCampaign.hh"
 #include "SmfUpgradeProcedure.hh"
 #include "SmfCampaignThread.hh"
-#include "SmfProcedureThread.hh"
 #include "SmfUtils.hh"
-#include "SmfCampState.hh"
 #include "SmfCbkUtil.hh"
 #include "osaf_extended_name.h"
 
diff --git a/osaf/services/saf/smfsv/smfd/smfd_evt.c 
b/osaf/services/saf/smfsv/smfd/smfd_evt.c
--- a/osaf/services/saf/smfsv/smfd/smfd_evt.c
+++ b/osaf/services/saf/smfsv/smfd/smfd_evt.c
@@ -26,7 +26,6 @@
 #include "smfd.h"
 #include "smfd_smfnd.h"
 #include "smfd_evt.h"
-#include "smfsv_defs.h"
 #include "smfsv_evt.h"
 
 void proc_callback_rsp(smfd_cb_t *, SMFSV_EVT *); @@ -62,8 +61,10 @@ static 
void proc_mds_info(smfd_cb_t * cb
                }
 
                if (mds_info->svc_id == NCSMDS_SVC_ID_SMFND) {
-                       smfnd_up(mds_info->node_id, mds_info->dest, 
mds_info->rem_svc_pvt_ver);
-                       cb->no_of_smfnd++;
+                       if(smfnd_up(mds_info->node_id, mds_info->dest, 
mds_info->rem_svc_pvt_ver) == SA_AIS_OK)
+                               cb->no_of_smfnd++;
+                       else
+                               LOG_WA("SMFND UP failed");
                }
                break;
 
diff --git a/osaf/services/saf/smfsv/smfd/smfd_main.c 
b/osaf/services/saf/smfsv/smfd/smfd_main.c
--- a/osaf/services/saf/smfsv/smfd/smfd_main.c
+++ b/osaf/services/saf/smfsv/smfd/smfd_main.c
@@ -362,7 +362,8 @@ static void main_process(void)
  */
 int main(int argc, char *argv[])
 {
-       setenv("SA_ENABLE_EXTENDED_NAMES", "1", 1);
+       if(setenv("SA_ENABLE_EXTENDED_NAMES", "1", 1) != 0)
+               LOG_WA("smfd_main(): failed to setenv SA_ENABLE_EXTENDED_NAMES 
- 
+%s",strerror(errno));
        daemonize(argc, argv);
 
        if (ncs_agents_startup() != NCSCC_RC_SUCCESS) { diff --git 
a/osaf/services/saf/smfsv/smfd/smfd_mds.c 
b/osaf/services/saf/smfsv/smfd/smfd_mds.c
--- a/osaf/services/saf/smfsv/smfd/smfd_mds.c
+++ b/osaf/services/saf/smfsv/smfd/smfd_mds.c
@@ -192,7 +192,7 @@ static uint32_t mds_rcv(struct ncsmds_ca
 
        /* Send the event to our mailbox */
        rc = m_NCS_IPC_SEND(&smfd_cb->mbx, smfsv_evt,
-                           mds_info->info.receive.i_priority);
+                           
(NCS_IPC_PRIORITY)mds_info->info.receive.i_priority);
        if (rc != NCSCC_RC_SUCCESS) {
                LOG_ER("IPC send failed %d", rc);
        }
diff --git a/osaf/services/saf/smfsv/smfd/smfd_smfnd.c 
b/osaf/services/saf/smfsv/smfd/smfd_smfnd.c
--- a/osaf/services/saf/smfsv/smfd/smfd_smfnd.c
+++ b/osaf/services/saf/smfsv/smfd/smfd_smfnd.c
@@ -34,7 +34,6 @@
 
 #include "smfd.h"
 #include "smfd_smfnd.h"
-#include "smfsv_defs.h"
 #include "smfsv_evt.h"
 
 /* ========================================================================
@@ -126,13 +125,13 @@ uint32_t smfnd_up(SaClmNodeIdT i_node_id
        /* Check if the node id does already exists */
         pthread_mutex_lock(&smfnd_list_lock);
        smfnd = get_smfnd(i_node_id);
-        pthread_mutex_unlock(&smfnd_list_lock);
 
        if (smfnd == NULL) {
                 TRACE("New node Id, create new SmfndNodeT structure");
                 smfnd = calloc(1, sizeof(SmfndNodeT));
                 if (smfnd == NULL) {
                         LOG_ER("alloc of SmfndNodeT failed");
+                        pthread_mutex_unlock(&smfnd_list_lock);
                         return NCSCC_RC_FAILURE;
                 }
                 newNode = true;
@@ -142,6 +141,8 @@ uint32_t smfnd_up(SaClmNodeIdT i_node_id
        rc = saClmInitialize(&clmHandle, NULL, &clmVersion);
        if (rc != SA_AIS_OK) {
                LOG_ER("saClmInitialize failed, rc=%s", saf_error(rc));
+               free(smfnd);
+               pthread_mutex_unlock(&smfnd_list_lock);
                return NCSCC_RC_FAILURE;
        }
 
@@ -156,6 +157,7 @@ uint32_t smfnd_up(SaClmNodeIdT i_node_id
                if (rc != SA_AIS_OK) {
                        LOG_ER("saClmFinalize failed, rc=%s", saf_error(rc));
                }
+               pthread_mutex_unlock(&smfnd_list_lock);
                return NCSCC_RC_FAILURE;
        }
 
@@ -164,8 +166,6 @@ uint32_t smfnd_up(SaClmNodeIdT i_node_id
                LOG_ER("saClmFinalize failed, rc=%s", saf_error(rc));
        }
 
-        pthread_mutex_lock(&smfnd_list_lock);
-
        /* Store cluster node info */
        memcpy(&smfnd->clmInfo, &clmInfo, sizeof(clmInfo));
 
diff --git a/osaf/services/saf/smfsv/smfnd/Makefile.am 
b/osaf/services/saf/smfsv/smfnd/Makefile.am
--- a/osaf/services/saf/smfsv/smfnd/Makefile.am
+++ b/osaf/services/saf/smfsv/smfnd/Makefile.am
@@ -25,8 +25,7 @@ osaf_execbindir = $(pkglibdir)  osaf_execbin_PROGRAMS = 
osafsmfnd
 
 noinst_HEADERS = \
-       smfnd.h \
-       smfnd_evt.h
+       smfnd.h
 
 osafsmfnd_CPPFLAGS = \
        -DSA_CLM_B01=1 -DSA_EXTENDED_NAME_SOURCE \ diff --git 
a/osaf/services/saf/smfsv/smfnd/smfnd_evt.c 
b/osaf/services/saf/smfsv/smfnd/smfnd_evt.c
--- a/osaf/services/saf/smfsv/smfnd/smfnd_evt.c
+++ b/osaf/services/saf/smfsv/smfnd/smfnd_evt.c
@@ -22,7 +22,6 @@
 #include "smfnd.h"
 #include "smfsv_defs.h"
 #include "smfsv_evt.h"
-#include "smfnd_evt.h"
 
 /* This function is called in another threads context so be 
    careful with what you do here */
diff --git a/osaf/services/saf/smfsv/smfnd/smfnd_mds.c 
b/osaf/services/saf/smfsv/smfnd/smfnd_mds.c
--- a/osaf/services/saf/smfsv/smfnd/smfnd_mds.c
+++ b/osaf/services/saf/smfsv/smfnd/smfnd_mds.c
@@ -19,7 +19,6 @@
 
 #include "smfnd.h"
 #include "smfsv_evt.h"
-#include "smfnd_evt.h"
 
 uint32_t mds_register(smfnd_cb_t * cb);  void mds_unregister(smfnd_cb_t * cb); 
@@ -195,7 +194,7 @@ static uint32_t mds_rcv(struct ncsmds_ca
        smfsv_evt->mds_ctxt = mds_info->info.receive.i_msg_ctxt;
 
        /* Send the event to our mailbox */
-       rc = m_NCS_IPC_SEND(&smfnd_cb->mbx, smfsv_evt, 
mds_info->info.receive.i_priority);
+       rc = m_NCS_IPC_SEND(&smfnd_cb->mbx, smfsv_evt, 
+(NCS_IPC_PRIORITY)mds_info->info.receive.i_priority);
        if (rc != NCSCC_RC_SUCCESS) {
                LOG_ER("IPC send failed %d", rc);
        }

------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to