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
