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