diff mbox

opensm/osm_ucast_cache.c: fix potential seg fault

Message ID 4C86522A.8090005@mellanox.co.il (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Yevgeny Kliteynik Sept. 7, 2010, 2:54 p.m. UTC
None
diff mbox

Patch

diff --git a/opensm/opensm/osm_ucast_cache.c b/opensm/opensm/osm_ucast_cache.c
index c611c38..be15508 100644
--- a/opensm/opensm/osm_ucast_cache.c
+++ b/opensm/opensm/osm_ucast_cache.c
@@ -931,6 +931,14 @@  void osm_ucast_cache_add_node(osm_ucast_mgr_t * p_mgr, osm_node_t * p_node)

 		p_cache_sw = cache_get_sw(p_mgr, lid_ho);
 		CL_ASSERT(p_cache_sw);
+		if (!p_cache_sw) {
+			/* something is wrong - forget about cache */
+			OSM_LOG(p_mgr->p_log, OSM_LOG_ERROR,
+				"ERR AD04: no cached switch with lid %u - "
+				"clearing cache\n", lid_ho);
+			osm_ucast_cache_invalidate(p_mgr);
+			goto Exit;
+		}

 		if (!cache_sw_is_leaf(p_cache_sw)) {
 			OSM_LOG(p_mgr->p_log, OSM_LOG_DEBUG,