Hi Hoang,

ACK for  [PATCH 6 of 8]  with following minor comment
I think CPND should return     SA_AIS_ERR_TOO_BIG = 26 instead of
SA_AIS_ERR_INVALID_PARAM ( please sync-up with other service return 
values ).

Note : tested default functionality , LONG DN functionality not tested 
in full fledged

-AVM


On 8/18/2016 12:48 PM, Hoang Vo wrote:
>   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