osaf/libs/agents/saf/cpa/cpa_api.c      |  12 ++++++++++++
 osaf/libs/agents/saf/cpa/cpa_mds.c      |   2 +-
 osaf/libs/common/cpsv/cpsv_evt.c        |   1 +
 osaf/services/saf/cpsv/cpd/cpd_proc.c   |   2 +-
 osaf/services/saf/cpsv/cpnd/cpnd_evt.c  |   2 ++
 osaf/services/saf/cpsv/cpnd/cpnd_proc.c |   2 +-
 6 files changed, 18 insertions(+), 3 deletions(-)


diff --git a/osaf/libs/agents/saf/cpa/cpa_api.c 
b/osaf/libs/agents/saf/cpa/cpa_api.c
--- a/osaf/libs/agents/saf/cpa/cpa_api.c
+++ b/osaf/libs/agents/saf/cpa/cpa_api.c
@@ -880,6 +880,10 @@ SaAisErrorT saCkptCheckpointOpen(SaCkptH
        }
 
        ckpt_name = osaf_extended_name_borrow(checkpointName);
+       if (strlen(ckpt_name) >= kOsafMaxDnLength) {
+               TRACE_LEAVE2("API return code = %u", SA_AIS_ERR_INVALID_PARAM);
+               return SA_AIS_ERR_INVALID_PARAM;
+       }
 
        /* SA_AIS_ERR_INVALID_PARAM, bullet 4 in SAI-AIS-CKPT-B.02.02 
            Section 3.6.1 saCkptCheckpointOpen() and 
saCkptCheckpointOpenAsync(), Return Values */
@@ -1192,6 +1196,10 @@ SaAisErrorT saCkptCheckpointOpenAsync(Sa
        }
 
        ckpt_name = osaf_extended_name_borrow(checkpointName);
+       if (strlen(ckpt_name) >= kOsafMaxDnLength) {
+               TRACE_LEAVE2("API return code = %u", SA_AIS_ERR_INVALID_PARAM);
+               return SA_AIS_ERR_INVALID_PARAM;
+       }
 
        /* SA_AIS_ERR_INVALID_PARAM, bullet 4 in SAI-AIS-CKPT-B.02.02 
            Section 3.6.1 saCkptCheckpointOpen() and 
saCkptCheckpointOpenAsync(), Return Values */
@@ -1597,6 +1605,10 @@ SaAisErrorT saCkptCheckpointUnlink(SaCkp
        }
 
        ckpt_name = osaf_extended_name_borrow(checkpointName);
+       if (strlen(ckpt_name) >= kOsafMaxDnLength) {
+               TRACE_LEAVE2("API return code = %u", SA_AIS_ERR_INVALID_PARAM);
+               return SA_AIS_ERR_INVALID_PARAM;
+       }
 
        /* retrieve CPA CB */
        m_CPA_RETRIEVE_CB(cb);
diff --git a/osaf/libs/agents/saf/cpa/cpa_mds.c 
b/osaf/libs/agents/saf/cpa/cpa_mds.c
--- a/osaf/libs/agents/saf/cpa/cpa_mds.c
+++ b/osaf/libs/agents/saf/cpa/cpa_mds.c
@@ -515,9 +515,9 @@ static uint32_t cpa_mds_svc_evt(CPA_CB *
                   /* Populate & Send the Open Event to CPND */
                   memset(&evt, 0, sizeof(CPSV_EVT));
                   evt.type = CPSV_EVT_TYPE_CPND;
-                  evt.info.cpnd.type = CPND_EVT_A2ND_CKPT_LIST_UPDATE;
                   evt.info.cpnd.info.ckptListUpdate.client_hdl = 
lc_node->cl_hdl; 
                   osaf_extended_name_lend(lc_node->ckpt_name, 
&evt.info.cpnd.info.ckptListUpdate.ckpt_name);
+                  evt.info.cpnd.type = CPND_EVT_A2ND_CKPT_LIST_UPDATE;
 
                   proc_rc = cpa_mds_msg_send(cb->cpa_mds_hdl, 
&cb->cpnd_mds_dest, &evt, NCSMDS_SVC_ID_CPND);
 
diff --git a/osaf/libs/common/cpsv/cpsv_evt.c b/osaf/libs/common/cpsv/cpsv_evt.c
--- a/osaf/libs/common/cpsv/cpsv_evt.c
+++ b/osaf/libs/common/cpsv/cpsv_evt.c
@@ -2378,6 +2378,7 @@ static uint32_t cpsv_encode_extended_nam
        if(!osaf_is_an_extended_name(name))
                return NCSCC_RC_SUCCESS;
 
+       TRACE("length = %d", name->length);
        SaConstStringT value = osaf_extended_name_borrow(name);
        uint16_t length = osaf_extended_name_length(name);
 
diff --git a/osaf/services/saf/cpsv/cpd/cpd_proc.c 
b/osaf/services/saf/cpsv/cpd/cpd_proc.c
--- a/osaf/services/saf/cpsv/cpd/cpd_proc.c
+++ b/osaf/services/saf/cpsv/cpd/cpd_proc.c
@@ -61,9 +61,9 @@ uint32_t cpd_noncolloc_ckpt_rep_create(C
        /* Send the Replica create info to CPND */
        memset(&send_evt, 0, sizeof(CPSV_EVT));
        send_evt.type = CPSV_EVT_TYPE_CPND;
-       send_evt.info.cpnd.type = CPND_EVT_D2ND_CKPT_CREATE;
 
        osaf_extended_name_lend(map_info->ckpt_name, 
&send_evt.info.cpnd.info.ckpt_create.ckpt_name);
+       send_evt.info.cpnd.type = CPND_EVT_D2ND_CKPT_CREATE;
 
        d2nd_info = &send_evt.info.cpnd.info.ckpt_create.ckpt_info;
 
diff --git a/osaf/services/saf/cpsv/cpnd/cpnd_evt.c 
b/osaf/services/saf/cpsv/cpnd/cpnd_evt.c
--- a/osaf/services/saf/cpsv/cpnd/cpnd_evt.c
+++ b/osaf/services/saf/cpsv/cpnd/cpnd_evt.c
@@ -4638,6 +4638,8 @@ uint32_t cpnd_evt_destroy(CPSV_EVT *evt)
                if 
(osaf_is_an_extended_name(&evt->info.cpnd.info.ckptListUpdate.ckpt_name))
                        free((void 
*)osaf_extended_name_borrow(&evt->info.cpnd.info.ckptListUpdate.ckpt_name));
        } else if (evt->info.cpnd.type == CPND_EVT_D2ND_CKPT_CREATE) {
+               if (evt->info.cpnd.info.ckpt_create.ckpt_info.dest_list != NULL)
+                       
m_MMGR_FREE_CPSV_SYS_MEMORY(evt->info.cpnd.info.ckpt_create.ckpt_info.dest_list);
                if 
(osaf_is_an_extended_name(&evt->info.cpnd.info.ckpt_create.ckpt_name))
                        free((void 
*)osaf_extended_name_borrow(&evt->info.cpnd.info.ckpt_create.ckpt_name));
        }
diff --git a/osaf/services/saf/cpsv/cpnd/cpnd_proc.c 
b/osaf/services/saf/cpsv/cpnd/cpnd_proc.c
--- a/osaf/services/saf/cpsv/cpnd/cpnd_proc.c
+++ b/osaf/services/saf/cpsv/cpnd/cpnd_proc.c
@@ -2529,9 +2529,9 @@ void cpnd_proc_ckpt_info_update(CPND_CB 
                LOG_NO("cpnd_proc_update_cpd_data::ckpt_name = %s[%llu]", 
(char*)ckpt_node->ckpt_name,
                        ckpt_node->ckpt_id);
                send_evt.type = CPSV_EVT_TYPE_CPD;
-               send_evt.info.cpd.type = CPD_EVT_ND2D_CKPT_INFO_UPDATE;
                send_evt.info.cpd.info.ckpt_info.ckpt_id = ckpt_node->ckpt_id;
                osaf_extended_name_lend(ckpt_node->ckpt_name, 
&send_evt.info.cpd.info.ckpt_info.ckpt_name);
+               send_evt.info.cpd.type = CPD_EVT_ND2D_CKPT_INFO_UPDATE;
                send_evt.info.cpd.info.ckpt_info.attributes = 
ckpt_node->create_attrib;
                send_evt.info.cpd.info.ckpt_info.ckpt_flags = 
ckpt_node->open_flags;
                send_evt.info.cpd.info.ckpt_info.num_users = 
ckpt_node->ckpt_lcl_ref_cnt;

------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to