opensm/osm_lid_mgr.c: Eliminate some potential NULL pointer dereferences Signed-off-by: Hal Rosenstock <[EMAIL PROTECTED]>
diff --git a/opensm/opensm/osm_lid_mgr.c b/opensm/opensm/osm_lid_mgr.c index 7f25750..b5e2b04 100644 --- a/opensm/opensm/osm_lid_mgr.c +++ b/opensm/opensm/osm_lid_mgr.c @@ -370,7 +370,8 @@ static int __osm_lid_mgr_init_sweep(IN osm_lid_mgr_t * const p_mgr) "Skipping all lids as we are reassigning them\n"); p_range = (osm_lid_mgr_range_t *) malloc(sizeof(osm_lid_mgr_range_t)); - p_range->min_lid = 1; + if (p_range) + p_range->min_lid = 1; goto AfterScanningLids; } @@ -557,8 +558,10 @@ static int __osm_lid_mgr_init_sweep(IN osm_lid_mgr_t * const p_mgr) else { p_range = (osm_lid_mgr_range_t *) malloc(sizeof(osm_lid_mgr_range_t)); - p_range->min_lid = lid; - p_range->max_lid = lid; + if (p_range) { + p_range->min_lid = lid; + p_range->max_lid = lid; + } } } else { /* this lid is used so we need to finalize the previous free range */ @@ -586,13 +589,16 @@ AfterScanningLids: no free range exists and we want to define it after the last mapped lid. */ - p_range->min_lid = lid; + if (p_range) + p_range->min_lid = lid; + } + if (p_range) { + p_range->max_lid = p_mgr->p_subn->max_unicast_lid_ho - 1; + cl_qlist_insert_tail(&p_mgr->free_ranges, &p_range->item); + OSM_LOG(p_mgr->p_log, OSM_LOG_DEBUG, + "final free lid range [0x%x:0x%x]\n", + p_range->min_lid, p_range->max_lid); } - p_range->max_lid = p_mgr->p_subn->max_unicast_lid_ho - 1; - cl_qlist_insert_tail(&p_mgr->free_ranges, &p_range->item); - OSM_LOG(p_mgr->p_log, OSM_LOG_DEBUG, - "final free lid range [0x%x:0x%x]\n", - p_range->min_lid, p_range->max_lid); OSM_LOG_EXIT(p_mgr->p_log); return status; _______________________________________________ general mailing list general@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general