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