Re: [devel] [PATCH 1/1] amf: handle errors identified by codechecker [#3077]

2019-09-16 Thread Minh Hon Chau

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]

2019-09-02 Thread Gary Lee
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 {
+