From 61b938d2e5bfade191795b06127a1cf75c9be303 Mon Sep 17 00:00:00 2001
From: David Bigagli <david@schedmd.com>
Date: Fri, 14 Jun 2013 19:05:49 -0700
Subject: [PATCH] Correct the memory size ot the array which should be NULL
 terminated. Avoid side effect instructions and do not increment a counter
 while accessing the array element but separate the instructions as per
 programming guide.

---
 src/plugins/priority/multifactor/priority_multifactor.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/plugins/priority/multifactor/priority_multifactor.c b/src/plugins/priority/multifactor/priority_multifactor.c
index 3e5fbe3ce64..f6062950576 100644
--- a/src/plugins/priority/multifactor/priority_multifactor.c
+++ b/src/plugins/priority/multifactor/priority_multifactor.c
@@ -734,7 +734,7 @@ static uint32_t _get_priority_internal(time_t start_time,
 
 		if (!job_ptr->priority_array) {
 			job_ptr->priority_array = xmalloc(sizeof(uint32_t) *
-					list_count(job_ptr->part_ptr_list));
+			                                  (list_count(job_ptr->part_ptr_list) + 1));
 		}
 		part_iterator = list_iterator_create(job_ptr->part_ptr_list);
 		while ((part_ptr = (struct part_record *)
@@ -752,7 +752,8 @@ static uint32_t _get_priority_internal(time_t start_time,
 					- NICE_OFFSET));
 			debug("Job %u has more than one partition (%s)(%u)",
 			      job_ptr->job_id, part_ptr->name,
-			      job_ptr->priority_array[i++]);
+			      job_ptr->priority_array[i]);
+			i++;
 		}
 	}
 	/* Priority 0 is reserved for held jobs */
-- 
GitLab