Hi!

Why did you remove #include <poll.h> from SmfCallback.cc? There is a 
call to the function poll() in this file, and the poll() function is 
declared in poll.h (according to the poll man-page). Probably, you 
should have removed #include <sys/poll.h> instead?

regards,
Anders Widell

On 02/18/2015 07:27 AM, Ingvar Bergström wrote:
> 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
>



------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to