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_evt.c   |   9 ++++++---
 osaf/services/saf/cpsv/cpd/cpd_mds.c   |   2 +-
 osaf/services/saf/cpsv/cpd/cpd_proc.c  |   2 +-
 osaf/services/saf/cpsv/cpnd/cpnd_evt.c |  28 +++++++++++++++++-----------
 osaf/services/saf/cpsv/cpnd/cpnd_mds.c |   2 +-
 8 files changed, 37 insertions(+), 21 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,8 @@ SaAisErrorT saCkptCheckpointOpen(SaCkptH
        }
 
        ckpt_name = osaf_extended_name_borrow(checkpointName);
+       if (strlen(ckpt_name) >= kOsafMaxDnLength)
+               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 */
@@ -981,7 +983,7 @@ SaAisErrorT saCkptCheckpointOpen(SaCkptH
        /* 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_OPEN;
+       evt.info.cpnd.type = CPND_EVT_A2ND_CKPT_OPEN_2;
        evt.info.cpnd.info.openReq.client_hdl = ckptHandle;
        evt.info.cpnd.info.openReq.lcl_ckpt_hdl = lc_node->lcl_ckpt_hdl;
 
@@ -1192,6 +1194,8 @@ SaAisErrorT saCkptCheckpointOpenAsync(Sa
        }
 
        ckpt_name = osaf_extended_name_borrow(checkpointName);
+       if (strlen(ckpt_name) >= kOsafMaxDnLength)
+               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 */
@@ -1277,7 +1281,7 @@ SaAisErrorT saCkptCheckpointOpenAsync(Sa
        /* 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_OPEN;
+       evt.info.cpnd.type = CPND_EVT_A2ND_CKPT_OPEN_2;
        evt.info.cpnd.info.openReq.client_hdl = ckptHandle;
        evt.info.cpnd.info.openReq.lcl_ckpt_hdl = lc_node->lcl_ckpt_hdl;
 
@@ -1597,6 +1601,8 @@ SaAisErrorT saCkptCheckpointUnlink(SaCkp
        }
 
        ckpt_name = osaf_extended_name_borrow(checkpointName);
+       if (strlen(ckpt_name) >= kOsafMaxDnLength)
+               return SA_AIS_ERR_INVALID_PARAM;
 
        /* retrieve CPA CB */
        m_CPA_RETRIEVE_CB(cb);
@@ -1635,7 +1641,7 @@ SaAisErrorT saCkptCheckpointUnlink(SaCkp
        /* Populate evt.info.cpnd.info.unlinkReq & Call MDS sync Send */
        memset(&evt, 0, sizeof(CPSV_EVT));
        evt.type = CPSV_EVT_TYPE_CPND;
-       evt.info.cpnd.type = CPND_EVT_A2ND_CKPT_UNLINK;
+       evt.info.cpnd.type = CPND_EVT_A2ND_CKPT_UNLINK_2;
 
        osaf_extended_name_lend(ckpt_name, 
&evt.info.cpnd.info.ulinkReq.ckpt_name);
 
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,7 +515,7 @@ 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.type = CPND_EVT_A2ND_CKPT_LIST_UPDATE_2;
                   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);
 
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
@@ -2431,6 +2431,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_evt.c 
b/osaf/services/saf/cpsv/cpd/cpd_evt.c
--- a/osaf/services/saf/cpsv/cpd/cpd_evt.c
+++ b/osaf/services/saf/cpsv/cpd/cpd_evt.c
@@ -110,6 +110,7 @@ void cpd_process_evt(CPSV_EVT *evt)
                (void)cpd_evt_proc_timer_expiry(cb, &evt->info.cpd);
                break;
        case CPD_EVT_ND2D_CKPT_CREATE:
+       case CPD_EVT_ND2D_CKPT_CREATE_2:
                (void)cpd_evt_proc_ckpt_create(cb, &evt->info.cpd, &evt->sinfo);
                break;
        case CPD_EVT_ND2D_CKPT_USR_INFO:
@@ -119,6 +120,7 @@ void cpd_process_evt(CPSV_EVT *evt)
                (void)cpd_evt_proc_ckpt_sec_info_upd(cb, &evt->info.cpd, 
&evt->sinfo);
                break;
        case CPD_EVT_ND2D_CKPT_UNLINK:
+       case CPD_EVT_ND2D_CKPT_UNLINK_2:
                (void)cpd_evt_proc_ckpt_unlink(cb, &evt->info.cpd, &evt->sinfo);
                break;
        case CPD_EVT_ND2D_CKPT_RDSET:
@@ -131,6 +133,7 @@ void cpd_process_evt(CPSV_EVT *evt)
                (void)cpd_evt_proc_ckpt_destroy(cb, &evt->info.cpd, 
&evt->sinfo);
                break;
        case CPD_EVT_ND2D_CKPT_DESTROY_BYNAME:
+       case CPD_EVT_ND2D_CKPT_DESTROY_BYNAME_2:
                (void)cpd_evt_proc_ckpt_destroy_byname(cb, &evt->info.cpd, 
&evt->sinfo);
                break;
        case CPD_EVT_MDS_QUIESCED_ACK_RSP:
@@ -1484,15 +1487,15 @@ static uint32_t cpd_evt_proc_mds_evt(CPD
 static void cpd_evt_free(CPSV_EVT *evt)
 {
        switch (evt->info.cpd.type) {
-       case CPD_EVT_ND2D_CKPT_CREATE:
+       case CPD_EVT_ND2D_CKPT_CREATE_2:
                if 
(osaf_is_an_extended_name(&evt->info.cpd.info.ckpt_create.ckpt_name))
                        free((void 
*)osaf_extended_name_borrow(&evt->info.cpd.info.ckpt_create.ckpt_name));
                break;
-       case CPD_EVT_ND2D_CKPT_UNLINK:
+       case CPD_EVT_ND2D_CKPT_UNLINK_2:
                if 
(osaf_is_an_extended_name(&evt->info.cpd.info.ckpt_ulink.ckpt_name))
                        free((void 
*)osaf_extended_name_borrow(&evt->info.cpd.info.ckpt_ulink.ckpt_name));
                break;
-       case CPD_EVT_ND2D_CKPT_DESTROY_BYNAME:
+       case CPD_EVT_ND2D_CKPT_DESTROY_BYNAME_2:
                if 
(osaf_is_an_extended_name(&evt->info.cpd.info.ckpt_destroy_byname.ckpt_name))
                        free((void 
*)osaf_extended_name_borrow(&evt->info.cpd.info.ckpt_destroy_byname.ckpt_name));
                break;
diff --git a/osaf/services/saf/cpsv/cpd/cpd_mds.c 
b/osaf/services/saf/cpsv/cpd/cpd_mds.c
--- a/osaf/services/saf/cpsv/cpd/cpd_mds.c
+++ b/osaf/services/saf/cpsv/cpd/cpd_mds.c
@@ -333,7 +333,7 @@ static uint32_t cpd_mds_enc(CPD_CB *cb, 
 
                if (pevt->type == CPSV_EVT_TYPE_CPND) {
                        switch (pevt->info.cpnd.type) {
-                       case CPND_EVT_D2ND_CKPT_CREATE:
+                       case CPND_EVT_D2ND_CKPT_CREATE_2:
 
                                pstream = ncs_enc_reserve_space(io_uba, 12);
                                if (!pstream)
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,7 +61,7 @@ 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;
+       send_evt.info.cpnd.type = CPND_EVT_D2ND_CKPT_CREATE_2;
 
        osaf_extended_name_lend(map_info->ckpt_name, 
&send_evt.info.cpnd.info.ckpt_create.ckpt_name);
 
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
@@ -200,6 +200,7 @@ void cpnd_process_evt(CPSV_EVT *evt)
                break;
 
        case CPND_EVT_A2ND_CKPT_OPEN:
+       case CPND_EVT_A2ND_CKPT_OPEN_2:
                (void)cpnd_evt_proc_ckpt_open(cb, &evt->info.cpnd, &evt->sinfo);
                break;
 
@@ -208,6 +209,7 @@ void cpnd_process_evt(CPSV_EVT *evt)
                break;
 
        case CPND_EVT_A2ND_CKPT_UNLINK:
+       case CPND_EVT_A2ND_CKPT_UNLINK_2:
                (void)cpnd_evt_proc_ckpt_unlink(cb, &evt->info.cpnd, 
&evt->sinfo);
                break;
 
@@ -311,7 +313,8 @@ void cpnd_process_evt(CPSV_EVT *evt)
                (void)cpnd_evt_proc_ckpt_destroy(cb, &evt->info.cpnd, 
&evt->sinfo);
                break;
 
-       case CPND_EVT_D2ND_CKPT_CREATE: /* happens for non-collocated and 
received
+       case CPND_EVT_D2ND_CKPT_CREATE: 
+       case CPND_EVT_D2ND_CKPT_CREATE_2:       /* happens for non-collocated 
and received
                                                   by CPNDs on SCXB */
                (void)cpnd_evt_proc_ckpt_create(cb, &evt->info.cpnd, 
&evt->sinfo);
                break;
@@ -360,6 +363,7 @@ void cpnd_process_evt(CPSV_EVT *evt)
                break;
 
        case CPND_EVT_A2ND_CKPT_LIST_UPDATE:
+       case CPND_EVT_A2ND_CKPT_LIST_UPDATE_2:
                (void) cpnd_evt_proc_ckpt_ckpt_list_update(cb, &evt->info.cpnd, 
&evt->sinfo);
                break;
 
@@ -708,7 +712,7 @@ static uint32_t cpnd_evt_proc_ckpt_open(
 
        /* ckpt is not present locally */
        /* if not present send to cpd,get the details... 
-          Send the CPD_EVT_ND2D_CKPT_CREATE evt to CPD to get the ckpt details 
+          Send the CPD_EVT_ND2D_CKPT_CREATE_2 evt to CPD to get the ckpt 
details 
           Fill send_evt.info.cpd.info.ckpt_create */
        if (sinfo->stype == MDS_SENDTYPE_SNDRSP) {
                timeout = 
m_CPSV_CONVERT_SATIME_TEN_MILLI_SEC(evt->info.openReq.timeout);
@@ -718,7 +722,7 @@ static uint32_t cpnd_evt_proc_ckpt_open(
                timeout = CPSV_WAIT_TIME;
 
        send_evt.type = CPSV_EVT_TYPE_CPD;
-       send_evt.info.cpd.type = CPD_EVT_ND2D_CKPT_CREATE;
+       send_evt.info.cpd.type = CPD_EVT_ND2D_CKPT_CREATE_2;
 
        osaf_extended_name_lend(ckpt_name, 
&send_evt.info.cpd.info.ckpt_create.ckpt_name);
        send_evt.info.cpd.info.ckpt_create.attributes = 
evt->info.openReq.ckpt_attrib;
@@ -743,7 +747,7 @@ static uint32_t cpnd_evt_proc_ckpt_open(
 
                        memset(node, '\0', sizeof(CPND_CPD_DEFERRED_REQ_NODE));
                        node->evt.type = CPSV_EVT_TYPE_CPD;
-                       node->evt.info.cpd.type = 
CPD_EVT_ND2D_CKPT_DESTROY_BYNAME;
+                       node->evt.info.cpd.type = 
CPD_EVT_ND2D_CKPT_DESTROY_BYNAME_2;
                        osaf_extended_name_lend(ckpt_name, 
&node->evt.info.cpd.info.ckpt_destroy_byname.ckpt_name);
 
                        ncs_enqueue(&cb->cpnd_cpd_deferred_reqs_list, (void 
*)node);
@@ -1151,7 +1155,7 @@ static uint32_t cpnd_evt_proc_ckpt_unlin
        }
 
        send_evt.type = CPSV_EVT_TYPE_CPD;
-       send_evt.info.cpd.type = CPD_EVT_ND2D_CKPT_UNLINK;
+       send_evt.info.cpd.type = CPD_EVT_ND2D_CKPT_UNLINK_2;
        send_evt.info.cpd.info.ckpt_ulink.ckpt_name = 
evt->info.ulinkReq.ckpt_name;
 
        rc = cpnd_mds_msg_sync_send(cb, NCSMDS_SVC_ID_CPD, cb->cpd_mdest_id, 
&send_evt, &out_evt, CPSV_WAIT_TIME);
@@ -3943,13 +3947,13 @@ static uint32_t cpnd_proc_cpd_new_active
                                TRACE_4("cpnd cpd new active destroy failed 
with error:%d",out_evt->info.cpnd.info.destroy_ack.error);
                        }
                        break;
-               case CPD_EVT_ND2D_CKPT_DESTROY_BYNAME:
+               case CPD_EVT_ND2D_CKPT_DESTROY_BYNAME_2:
                        if (out_evt && 
out_evt->info.cpnd.info.destroy_ack.error != SA_AIS_OK) {
                                TRACE_4("cpnd cpd new active destroy byname 
failed with error:%d",out_evt->info.cpnd.info.destroy_ack.error);
                        }
                        break;
 
-               case CPD_EVT_ND2D_CKPT_UNLINK:
+               case CPD_EVT_ND2D_CKPT_UNLINK_2:
                        if (out_evt && out_evt->info.cpnd.info.ulink_ack.error 
!= SA_AIS_OK) {
                                TRACE_4("cpnd cpd new active unlink failed with 
error:%d",out_evt->info.cpnd.info.ulink_ack.error);
                        }
@@ -4617,16 +4621,18 @@ uint32_t cpnd_evt_destroy(CPSV_EVT *evt)
                        }
                        break;
                }
-       } else if (evt->info.cpnd.type == CPND_EVT_A2ND_CKPT_OPEN) {
+       } else if (evt->info.cpnd.type == CPND_EVT_A2ND_CKPT_OPEN_2) {
                if 
(osaf_is_an_extended_name(&evt->info.cpnd.info.openReq.ckpt_name))
                        free((void 
*)osaf_extended_name_borrow(&evt->info.cpnd.info.openReq.ckpt_name));
-       } else if (evt->info.cpnd.type == CPND_EVT_A2ND_CKPT_UNLINK) {
+       } else if (evt->info.cpnd.type == CPND_EVT_A2ND_CKPT_UNLINK_2) {
                if 
(osaf_is_an_extended_name(&evt->info.cpnd.info.ulinkReq.ckpt_name))
                        free((void 
*)osaf_extended_name_borrow(&evt->info.cpnd.info.ulinkReq.ckpt_name));
-       } else if (evt->info.cpnd.type == CPND_EVT_A2ND_CKPT_LIST_UPDATE) {
+       } else if (evt->info.cpnd.type == CPND_EVT_A2ND_CKPT_LIST_UPDATE_2) {
                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) {
+       } else if (evt->info.cpnd.type == CPND_EVT_D2ND_CKPT_CREATE_2) {
+               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_mds.c 
b/osaf/services/saf/cpsv/cpnd/cpnd_mds.c
--- a/osaf/services/saf/cpsv/cpnd/cpnd_mds.c
+++ b/osaf/services/saf/cpsv/cpnd/cpnd_mds.c
@@ -593,7 +593,7 @@ static uint32_t cpnd_mds_dec(CPND_CB *cb
                                rc = 
cpsv_refcnt_ckptid_decode(&msg_ptr->info.cpnd.info.refCntsetReq,dec_info->io_uba);
                                goto free;
 
-                       case CPND_EVT_D2ND_CKPT_CREATE:
+                       case CPND_EVT_D2ND_CKPT_CREATE_2:
                                ncs_dec_skip_space(dec_info->io_uba, 12);
                                rc = 
cpsv_d2nd_ckpt_create_2_decode(&msg_ptr->info.cpnd.info.ckpt_create, 
dec_info->io_uba);
                                goto free;

------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to