In immnd_evt_proc_search_next(), before jumping to agent_rsp, mLastResult must
be cleared.
So that it will not be freed again in immnd_proc_imma_discard_connection().
---
src/imm/immnd/immnd_evt.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/imm/immnd/immnd_evt.c b/src/imm/immnd/immnd_evt.c
index cacf4d5..3f8ef10 100644
--- a/src/imm/immnd/immnd_evt.c
+++ b/src/imm/immnd/immnd_evt.c
@@ -1844,6 +1844,7 @@ static uint32_t immnd_evt_proc_search_next(IMMND_CB *cb,
IMMND_EVT *evt,
/*Fetch client node for OI ! */
immnd_client_node_get(cb, implHandle, &oi_cl_node);
if (oi_cl_node == NULL || oi_cl_node->mIsStale) {
+ immModel_clearLastResult(sn->searchOp);
LOG_WA(
"ERR_NO_RESOURCES: SearchNext: Implementer
died during fetch of pure RTA");
error = SA_AIS_ERR_NO_RESOURCES;
@@ -1856,6 +1857,7 @@ static uint32_t immnd_evt_proc_search_next(IMMND_CB *cb,
IMMND_EVT *evt,
cb, NCSMDS_SVC_ID_IMMA_OI,
oi_cl_node->agent_mds_dest,
&send_evt) != NCSCC_RC_SUCCESS) {
+ immModel_clearLastResult(sn->searchOp);
LOG_WA(
"ERR_NO_RESOURCES: SearchNext -
Agent upcall over MDS for rtUpdate failed");
error = SA_AIS_ERR_NO_RESOURCES;
@@ -1884,6 +1886,7 @@ static uint32_t immnd_evt_proc_search_next(IMMND_CB *cb,
IMMND_EVT *evt,
rc = immnd_mds_msg_send(cb, NCSMDS_SVC_ID_IMMND,
implDest, &send_evt);
if (rc != NCSCC_RC_SUCCESS) {
+ immModel_clearLastResult(sn->searchOp);
LOG_ER(
"ERR_NO_RESOURCES: SearchNext - Problem in
sending to peer IMMND over MDS. Aborting searchNext.");
error = SA_AIS_ERR_NO_RESOURCES;
--
2.7.4
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel