osaf/services/saf/clmsv/clms/clms_evt.c | 17 +++++++++--------
1 files changed, 9 insertions(+), 8 deletions(-)
The coredump happens if the node_up is sent from clm node agent
not attaching the ip. The error code is set to SA_AIS_ERR_NOT_EXIST,
but it's incorrectly overwriten to SA_AIS_OK, therefore ip is null
though being referenced to in later part of proc_node_up_msg.
diff --git a/osaf/services/saf/clmsv/clms/clms_evt.c
b/osaf/services/saf/clmsv/clms/clms_evt.c
--- a/osaf/services/saf/clmsv/clms/clms_evt.c
+++ b/osaf/services/saf/clmsv/clms/clms_evt.c
@@ -517,6 +517,7 @@ uint32_t proc_node_up_msg(CLMS_CB * cb,
nodeid = evt->info.msg.info.api_info.param.nodeup_info.node_id;
node = clms_node_get_by_name(&node_name);
+ clm_msg.info.api_resp_info.rc = SA_AIS_OK;
if (node == NULL) {
/* The /etc/opensaf/node_name is an user exposed configuration
file.
* The node_name file contains the RDN value of the CLM node
name.
@@ -558,14 +559,14 @@ uint32_t proc_node_up_msg(CLMS_CB * cb,
}
}
}
-
- if ((cb->node_id != nodeup_info->node_id) && (node->nodeup ==
SA_TRUE)){
- clm_msg.info.api_resp_info.rc = SA_AIS_ERR_EXIST;
- LOG_ER("Duplicate node join request for CLM node: '%s'.
"
- "Specify a unique node name in"
PKGSYSCONFDIR "/node_name",
- nodeup_info->node_name.value);
- } else
- clm_msg.info.api_resp_info.rc = SA_AIS_OK;
+ if (clm_msg.info.api_resp_info.rc == SA_AIS_OK) {
+ if ((cb->node_id != nodeup_info->node_id) &&
(node->nodeup == SA_TRUE)){
+ clm_msg.info.api_resp_info.rc =
SA_AIS_ERR_EXIST;
+ LOG_ER("Duplicate node join request for CLM
node: '%s'. "
+ "Specify a unique node name in"
PKGSYSCONFDIR "/node_name",
+ nodeup_info->node_name.value);
+ }
+ }
} /* Node exists in DB */
------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel