From 6e50542c6376e6535cfc69a5b61634912a20c6f2 Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Wed, 15 Nov 2006 00:49:10 +0000
Subject: [PATCH] Plug some more memory leaks.

---
 src/common/slurm_step_layout.c | 1 +
 src/slurmctld/job_mgr.c        | 1 +
 src/slurmctld/node_scheduler.c | 1 +
 src/slurmctld/step_mgr.c       | 1 +
 4 files changed, 4 insertions(+)

diff --git a/src/common/slurm_step_layout.c b/src/common/slurm_step_layout.c
index ef0579b894c..2245f813da6 100644
--- a/src/common/slurm_step_layout.c
+++ b/src/common/slurm_step_layout.c
@@ -132,6 +132,7 @@ slurm_step_layout_t *slurm_step_layout_create(
 		slurm_step_layout_destroy(step_layout);
 		step_layout = NULL;
 	}
+	xfree(arbitrary_nodes);
 	return step_layout;
 }
 
diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c
index 815b9434baf..468cd0b88fe 100644
--- a/src/slurmctld/job_mgr.c
+++ b/src/slurmctld/job_mgr.c
@@ -1051,6 +1051,7 @@ static void _excise_node_from_job(struct job_record *job_ptr,
 				  struct node_record *node_ptr)
 {
 	make_node_idle(node_ptr, job_ptr); /* updates bitmap */
+	xfree(job_ptr->nodes);
 	job_ptr->nodes = bitmap2node_name(job_ptr->node_bitmap);
 	xfree(job_ptr->cpus_per_node);
 	xfree(job_ptr->cpu_count_reps);
diff --git a/src/slurmctld/node_scheduler.c b/src/slurmctld/node_scheduler.c
index 28972b6de66..23742f456ce 100644
--- a/src/slurmctld/node_scheduler.c
+++ b/src/slurmctld/node_scheduler.c
@@ -638,6 +638,7 @@ _pick_best_nodes(struct node_set *node_set_ptr, int node_set_size,
 						FREE_NULL_BITMAP(
 							partially_idle_node_bitmap);
 					}
+					FREE_NULL_BITMAP(avail_bitmap);
 					FREE_NULL_BITMAP(total_bitmap);
 					FREE_NULL_BITMAP(possible_bitmap);
 					return error_code;
diff --git a/src/slurmctld/step_mgr.c b/src/slurmctld/step_mgr.c
index 154b6e14f18..96eceedf699 100644
--- a/src/slurmctld/step_mgr.c
+++ b/src/slurmctld/step_mgr.c
@@ -730,6 +730,7 @@ step_create(job_step_create_request_msg_t *step_specs,
 		step_specs->node_list = bitmap2node_name(nodeset);
 	} else {
 		step_node_list = bitmap2node_name(nodeset);
+		xfree(step_specs->node_list);
 		step_specs->node_list = xstrdup(step_node_list);
 	}
 
-- 
GitLab