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
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel