diff --git a/src/plugins/select/bluegene/bg_list_functions.c b/src/plugins/select/bluegene/bg_list_functions.c index eed4098cdbe9ef2c21c5e031cf96090f555ca84e..f2f02c7abc94c0ca4c10bf06686cc572721eff82 100644 --- a/src/plugins/select/bluegene/bg_list_functions.c +++ b/src/plugins/select/bluegene/bg_list_functions.c @@ -48,6 +48,8 @@ extern int block_exist_in_list(List my_list, bg_record_t *bg_record) int rc = 0; while ((found_record = list_next(itr))) { + if (found_record->magic != BLOCK_MAGIC) + continue; /* check for full node bitmap compare */ if (bit_equal(bg_record->bitmap, found_record->bitmap) && bit_equal(bg_record->ionode_bitmap, @@ -114,7 +116,7 @@ extern bg_record_t *find_bg_record_in_list(List my_list, itr = list_iterator_create(my_list); while ((bg_record = list_next(itr))) { - if (bg_record->bg_block_id) + if (bg_record->bg_block_id && (bg_record->magic == BLOCK_MAGIC)) if (!strcasecmp(bg_record->bg_block_id, bg_block_id)) break; } @@ -140,7 +142,7 @@ extern int remove_from_bg_list(List my_list, bg_record_t *bg_record) //slurm_mutex_lock(&block_state_mutex); itr = list_iterator_create(my_list); while ((found_record = list_next(itr))) { - if (found_record) + if (found_record->magic == BLOCK_MAGIC) if (bg_record == found_record) { list_remove(itr); rc = SLURM_SUCCESS; @@ -162,7 +164,10 @@ extern bg_record_t *find_and_remove_org_from_bg_list(List my_list, ListIterator itr = list_iterator_create(my_list); bg_record_t *found_record = NULL; - while ((found_record = (bg_record_t *) list_next(itr)) != NULL) { + while ((found_record = list_next(itr))) { + if (found_record->magic != BLOCK_MAGIC) + continue; + /* check for full node bitmap compare */ if (bit_equal(bg_record->bitmap, found_record->bitmap) && bit_equal(bg_record->ionode_bitmap, @@ -188,7 +193,9 @@ extern bg_record_t *find_org_in_bg_list(List my_list, bg_record_t *bg_record) ListIterator itr = list_iterator_create(my_list); bg_record_t *found_record = NULL; - while ((found_record = (bg_record_t *) list_next(itr)) != NULL) { + while ((found_record = list_next(itr))) { + if (found_record->magic != BLOCK_MAGIC) + continue; /* check for full node bitmap compare */ if (bit_equal(bg_record->bitmap, found_record->bitmap) && bit_equal(bg_record->ionode_bitmap,