From 66edb0e2d1f5fa7a3010aad3b013b72224ce8e16 Mon Sep 17 00:00:00 2001
From: Brian Christiansen <brian@schedmd.com>
Date: Thu, 27 Aug 2015 14:10:56 -0700
Subject: [PATCH] Properly return and handle priority_weight_tres string.

---
 src/common/slurm_protocol_api.c                         | 4 ++--
 src/plugins/priority/multifactor/priority_multifactor.c | 1 +
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/common/slurm_protocol_api.c b/src/common/slurm_protocol_api.c
index b423b9a274b..d519b936f4c 100644
--- a/src/common/slurm_protocol_api.c
+++ b/src/common/slurm_protocol_api.c
@@ -807,7 +807,7 @@ uint32_t slurm_get_priority_weight_qos(void)
 
 /* slurm_get_priority_weight_tres
  * returns the priority weights for TRES' from slurmctld_conf object
- * char * string of configured tres weights.
+ * RET char * string of configured tres weights. MUST be xfreed by caller
  */
 char *slurm_get_priority_weight_tres(void)
 {
@@ -817,7 +817,7 @@ char *slurm_get_priority_weight_tres(void)
 	if (slurmdbd_conf) {
 	} else {
 		conf = slurm_conf_lock();
-		weights = conf->priority_weight_tres;
+		weights = xstrdup(conf->priority_weight_tres);
 		slurm_conf_unlock();
 	}
 
diff --git a/src/plugins/priority/multifactor/priority_multifactor.c b/src/plugins/priority/multifactor/priority_multifactor.c
index 9cfac4237d8..43ee8cd8d22 100644
--- a/src/plugins/priority/multifactor/priority_multifactor.c
+++ b/src/plugins/priority/multifactor/priority_multifactor.c
@@ -1414,6 +1414,7 @@ static void _internal_setup(void)
 		weight_tres = slurm_get_tres_weight_array(tres_weights_str,
 							  slurmctld_tres_cnt);
 	}
+	xfree(tres_weights_str);
 	flags = slurmctld_conf.priority_flags;
 
 	if (priority_debug) {
-- 
GitLab