diff --git a/src/sinfo/sinfo.c b/src/sinfo/sinfo.c index b71fccccd222a17a2d3abb228a57c08531f5fb66..00feb4383391dbc8a8ddd80ec4bbb387dbe5dc6b 100644 --- a/src/sinfo/sinfo.c +++ b/src/sinfo/sinfo.c @@ -384,9 +384,13 @@ static List _group_node_list(node_info_msg_t * msg) static struct partition_summary *_find_partition_summary(List l, char *name) { - ListIterator i = list_iterator_create(l); - struct partition_summary *current; + ListIterator i; + struct partition_summary *current = NULL; + + if (name == NULL) + return current; + i = list_iterator_create(l); while ((current = list_next(i)) != NULL) { if (strcmp(current->info->name, name) == 0) break; @@ -437,10 +441,17 @@ _setup_partition_summary(partition_info_msg_t * part_ptr, for (i = 0; i < node_ptr->record_count; i++) { node_info_t *ninfo = &node_ptr->node_array[i]; - struct partition_summary *part_sum = - _find_partition_summary(partitions, ninfo->partition); + struct partition_summary *part_sum; struct node_state_summary *node_sum = NULL; + if (ninfo->partition == NULL) { + if (params.verbose) + printf("Node %s is not in any partition\n\n", + ninfo->name); + continue; + } + part_sum = _find_partition_summary(partitions, + ninfo->partition); if (part_sum == NULL) { /* This should never happen */ printf