Re: [devel] [PATCH 1/1] amf: handle errors identified by codechecker [#3077]
Hi Gary, ack from me (code review only) Thanks Minh On 3/9/19 12:12 pm, Gary Lee wrote: add assertions where pointers should not be null fix a couple of typos --- src/amf/amfd/comp.cc | 1 + src/amf/amfd/csi.cc| 3 ++- src/amf/amfd/cstype.cc | 2 ++ src/amf/amfd/hlt.cc| 1 + src/amf/amfd/nodeswbundle.cc | 2 +- src/amf/amfd/ntf.cc| 1 + src/amf/amfd/sg_npm_fsm.cc | 34 +++--- src/amf/amfd/sg_nway_fsm.cc| 2 +- src/amf/amfd/sgproc.cc | 1 + src/amf/amfd/su.cc | 1 + src/amf/amfd/sutype.cc | 3 ++- src/amf/amfd/svctype.cc| 1 + src/amf/amfd/svctypecstypes.cc | 1 + src/amf/amfnd/cbq.cc | 2 ++ src/amf/amfnd/clc.cc | 1 + src/amf/amfnd/comp.cc | 4 src/amf/amfnd/compdb.cc| 2 +- src/amf/amfnd/susm.cc | 11 +++ 18 files changed, 53 insertions(+), 20 deletions(-) diff --git a/src/amf/amfd/comp.cc b/src/amf/amfd/comp.cc index 0ff365e..5c6a283 100644 --- a/src/amf/amfd/comp.cc +++ b/src/amf/amfd/comp.cc @@ -2117,6 +2117,7 @@ static void comp_ccb_apply_modify_hdlr(struct CcbUtilOperationData *opdata) { attribute->attrValuesNumber); if (!strcmp(attribute->attrName, "saAmfCompType")) { + osafassert(value != nullptr); SaNameT *dn = (SaNameT *)value; const std::string oldType(comp->saAmfCompType); if (oldType.compare(Amf::to_string(dn)) == 0) { diff --git a/src/amf/amfd/csi.cc b/src/amf/amfd/csi.cc index f7e3730..1856610 100644 --- a/src/amf/amfd/csi.cc +++ b/src/amf/amfd/csi.cc @@ -913,7 +913,8 @@ static void ccb_apply_delete_hdlr(CcbUtilOperationData_t *opdata) { goto done; } - TRACE("'%s'", csi ? csi->name.c_str() : nullptr); + osafassert(csi != nullptr); + TRACE("'%s'", csi->name.c_str()); /* Check whether si has been assigned to any SU. */ if ((nullptr != csi->si->list_of_sisu) && (csi->compcsi_cnt != 0)) { diff --git a/src/amf/amfd/cstype.cc b/src/amf/amfd/cstype.cc index cadc6df..683d3cd 100644 --- a/src/amf/amfd/cstype.cc +++ b/src/amf/amfd/cstype.cc @@ -62,6 +62,7 @@ static AVD_CS_TYPE *cstype_create(const std::string , * @param cst */ static void cstype_delete(AVD_CS_TYPE *cst) { + osafassert(cst != nullptr); cstype_db->erase(cst->name); cst->saAmfCSAttrName.clear(); delete cst; @@ -205,6 +206,7 @@ static SaAisErrorT cstype_ccb_completed_hdlr(CcbUtilOperationData_t *opdata) { opdata->userData = nullptr; break; } + osafassert(cst != nullptr); if (cst->list_of_csi != nullptr) { /* check whether there exists a delete operation for * each of the CSI in the cs_type list in the current CCB diff --git a/src/amf/amfd/hlt.cc b/src/amf/amfd/hlt.cc index 27863db..4c2737e 100644 --- a/src/amf/amfd/hlt.cc +++ b/src/amf/amfd/hlt.cc @@ -75,6 +75,7 @@ static SaAisErrorT ccb_completed_delete_hdlr(CcbUtilOperationData_t *opdata) { opdata->userData = nullptr; goto done; } + osafassert(comp != nullptr); for (curr_susi = comp->su->list_of_susi; curr_susi != nullptr; curr_susi = curr_susi->su_next) for (compcsi = curr_susi->list_of_csicomp; compcsi; diff --git a/src/amf/amfd/nodeswbundle.cc b/src/amf/amfd/nodeswbundle.cc index 4ab79f7..cf280cb 100644 --- a/src/amf/amfd/nodeswbundle.cc +++ b/src/amf/amfd/nodeswbundle.cc @@ -125,7 +125,7 @@ static int is_swbdl_delete_ok(const std::string _dn, if (node == nullptr && avd_cb->is_active() == false) { return 1; } - + osafassert(node != nullptr); if (!is_swbdl_delete_ok_for_node(bundle_dn, node_dn, node->list_of_ncs_su, opdata)) return 0; diff --git a/src/amf/amfd/ntf.cc b/src/amf/amfd/ntf.cc index eb2654a..52ee745 100644 --- a/src/amf/amfd/ntf.cc +++ b/src/amf/amfd/ntf.cc @@ -505,6 +505,7 @@ SaAisErrorT avd_try_send_notification(NtfSend* job) { >notification.alarmNotification.notificationHandle; } + osafassert(notificationHandle != nullptr); // Try to send the notification if not sent. if (job->already_sent == false) { rc = saNtfNotificationSend(*notificationHandle); diff --git a/src/amf/amfd/sg_npm_fsm.cc b/src/amf/amfd/sg_npm_fsm.cc index 0ef094d..0e91eb5 100644 --- a/src/amf/amfd/sg_npm_fsm.cc +++ b/src/amf/amfd/sg_npm_fsm.cc @@ -2773,23 +2773,26 @@ static uint32_t avd_sg_npm_susi_sucss_si_oper(AVD_CL_CB *cb, AVD_SU *su, * modify standby all to the Quiesced SU. Remove the SI from * admin pointer and add the quiesced SU to the SU oper list. */ - if (su->sg_of_su->admin_si->list_of_sisu == i_susi) { -o_susi = i_susi->si_next; - } else { -o_susi = su->sg_of_su->admin_si->list_of_sisu; - } + i_susi = avd_su_susi_find(cb, su, su->sg_of_su->admin_si->name); + if
[devel] [PATCH 1/1] amf: handle errors identified by codechecker [#3077]
add assertions where pointers should not be null fix a couple of typos --- src/amf/amfd/comp.cc | 1 + src/amf/amfd/csi.cc| 3 ++- src/amf/amfd/cstype.cc | 2 ++ src/amf/amfd/hlt.cc| 1 + src/amf/amfd/nodeswbundle.cc | 2 +- src/amf/amfd/ntf.cc| 1 + src/amf/amfd/sg_npm_fsm.cc | 34 +++--- src/amf/amfd/sg_nway_fsm.cc| 2 +- src/amf/amfd/sgproc.cc | 1 + src/amf/amfd/su.cc | 1 + src/amf/amfd/sutype.cc | 3 ++- src/amf/amfd/svctype.cc| 1 + src/amf/amfd/svctypecstypes.cc | 1 + src/amf/amfnd/cbq.cc | 2 ++ src/amf/amfnd/clc.cc | 1 + src/amf/amfnd/comp.cc | 4 src/amf/amfnd/compdb.cc| 2 +- src/amf/amfnd/susm.cc | 11 +++ 18 files changed, 53 insertions(+), 20 deletions(-) diff --git a/src/amf/amfd/comp.cc b/src/amf/amfd/comp.cc index 0ff365e..5c6a283 100644 --- a/src/amf/amfd/comp.cc +++ b/src/amf/amfd/comp.cc @@ -2117,6 +2117,7 @@ static void comp_ccb_apply_modify_hdlr(struct CcbUtilOperationData *opdata) { attribute->attrValuesNumber); if (!strcmp(attribute->attrName, "saAmfCompType")) { + osafassert(value != nullptr); SaNameT *dn = (SaNameT *)value; const std::string oldType(comp->saAmfCompType); if (oldType.compare(Amf::to_string(dn)) == 0) { diff --git a/src/amf/amfd/csi.cc b/src/amf/amfd/csi.cc index f7e3730..1856610 100644 --- a/src/amf/amfd/csi.cc +++ b/src/amf/amfd/csi.cc @@ -913,7 +913,8 @@ static void ccb_apply_delete_hdlr(CcbUtilOperationData_t *opdata) { goto done; } - TRACE("'%s'", csi ? csi->name.c_str() : nullptr); + osafassert(csi != nullptr); + TRACE("'%s'", csi->name.c_str()); /* Check whether si has been assigned to any SU. */ if ((nullptr != csi->si->list_of_sisu) && (csi->compcsi_cnt != 0)) { diff --git a/src/amf/amfd/cstype.cc b/src/amf/amfd/cstype.cc index cadc6df..683d3cd 100644 --- a/src/amf/amfd/cstype.cc +++ b/src/amf/amfd/cstype.cc @@ -62,6 +62,7 @@ static AVD_CS_TYPE *cstype_create(const std::string , * @param cst */ static void cstype_delete(AVD_CS_TYPE *cst) { + osafassert(cst != nullptr); cstype_db->erase(cst->name); cst->saAmfCSAttrName.clear(); delete cst; @@ -205,6 +206,7 @@ static SaAisErrorT cstype_ccb_completed_hdlr(CcbUtilOperationData_t *opdata) { opdata->userData = nullptr; break; } + osafassert(cst != nullptr); if (cst->list_of_csi != nullptr) { /* check whether there exists a delete operation for * each of the CSI in the cs_type list in the current CCB diff --git a/src/amf/amfd/hlt.cc b/src/amf/amfd/hlt.cc index 27863db..4c2737e 100644 --- a/src/amf/amfd/hlt.cc +++ b/src/amf/amfd/hlt.cc @@ -75,6 +75,7 @@ static SaAisErrorT ccb_completed_delete_hdlr(CcbUtilOperationData_t *opdata) { opdata->userData = nullptr; goto done; } + osafassert(comp != nullptr); for (curr_susi = comp->su->list_of_susi; curr_susi != nullptr; curr_susi = curr_susi->su_next) for (compcsi = curr_susi->list_of_csicomp; compcsi; diff --git a/src/amf/amfd/nodeswbundle.cc b/src/amf/amfd/nodeswbundle.cc index 4ab79f7..cf280cb 100644 --- a/src/amf/amfd/nodeswbundle.cc +++ b/src/amf/amfd/nodeswbundle.cc @@ -125,7 +125,7 @@ static int is_swbdl_delete_ok(const std::string _dn, if (node == nullptr && avd_cb->is_active() == false) { return 1; } - + osafassert(node != nullptr); if (!is_swbdl_delete_ok_for_node(bundle_dn, node_dn, node->list_of_ncs_su, opdata)) return 0; diff --git a/src/amf/amfd/ntf.cc b/src/amf/amfd/ntf.cc index eb2654a..52ee745 100644 --- a/src/amf/amfd/ntf.cc +++ b/src/amf/amfd/ntf.cc @@ -505,6 +505,7 @@ SaAisErrorT avd_try_send_notification(NtfSend* job) { >notification.alarmNotification.notificationHandle; } + osafassert(notificationHandle != nullptr); // Try to send the notification if not sent. if (job->already_sent == false) { rc = saNtfNotificationSend(*notificationHandle); diff --git a/src/amf/amfd/sg_npm_fsm.cc b/src/amf/amfd/sg_npm_fsm.cc index 0ef094d..0e91eb5 100644 --- a/src/amf/amfd/sg_npm_fsm.cc +++ b/src/amf/amfd/sg_npm_fsm.cc @@ -2773,23 +2773,26 @@ static uint32_t avd_sg_npm_susi_sucss_si_oper(AVD_CL_CB *cb, AVD_SU *su, * modify standby all to the Quiesced SU. Remove the SI from * admin pointer and add the quiesced SU to the SU oper list. */ - if (su->sg_of_su->admin_si->list_of_sisu == i_susi) { -o_susi = i_susi->si_next; - } else { -o_susi = su->sg_of_su->admin_si->list_of_sisu; - } + i_susi = avd_su_susi_find(cb, su, su->sg_of_su->admin_si->name); + if (i_susi != nullptr) { +if (su->sg_of_su->admin_si->list_of_sisu == i_susi) { + o_susi = i_susi->si_next; +} else { +