diff mbox

opensm: fix crash in DFSSSP routing engine on reroute

Message ID 20120812064433.GA14539@calypso (mailing list archive)
State Accepted
Delegated to: Alex Netes
Headers show

Commit Message

Alex Netes Aug. 12, 2012, 6:44 a.m. UTC
Routing engine should delete the context only when calling delete
function.

Found-and-fixed-by: Jens Domke <jens.domke@tu-dresden.de>
Signed-off-by: Alex Netes <alexne@mellanox.com>
---
 opensm/osm_ucast_dfsssp.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)
diff mbox

Patch

diff --git a/opensm/osm_ucast_dfsssp.c b/opensm/osm_ucast_dfsssp.c
index d6d65b1..ffc317f 100644
--- a/opensm/osm_ucast_dfsssp.c
+++ b/opensm/osm_ucast_dfsssp.c
@@ -2135,12 +2135,11 @@  static void dfsssp_context_destroy(void *context)
 	}
 	free(adj_list);
 	dfsssp_ctx->adj_list = NULL;
+	dfsssp_ctx->adj_list_size = 0;
 
 	/* free srcdest2vl table (can be done because, dfsssp_context_destroy is called after osm_get_dfsssp_sl) */
 	vltable_dealloc(&(dfsssp_ctx->srcdest2vl_table));
 	dfsssp_ctx->srcdest2vl_table = NULL;
-
-	free(context);
 }
 
 static void delete(void *context)
@@ -2148,6 +2147,8 @@  static void delete(void *context)
 	if (!context)
 		return;
 	dfsssp_context_destroy(context);
+
+	free(context);
 }
 
 int osm_ucast_dfsssp_setup(struct osm_routing_engine *r, osm_opensm_t * p_osm)