From 5944b5d61acf65e7c07aca2d68295d84dd8ec1e8 Mon Sep 17 00:00:00 2001
From: Danny Auble <da@llnl.gov>
Date: Thu, 5 Mar 2009 17:45:04 +0000
Subject: [PATCH] fix for some memory leaks

---
 src/plugins/select/cons_res/job_test.c | 1 +
 src/slurmctld/job_mgr.c                | 1 +
 src/slurmctld/node_scheduler.c         | 5 +++--
 3 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/plugins/select/cons_res/job_test.c b/src/plugins/select/cons_res/job_test.c
index c5adc65d144..4fdb1d6b91a 100644
--- a/src/plugins/select/cons_res/job_test.c
+++ b/src/plugins/select/cons_res/job_test.c
@@ -1658,6 +1658,7 @@ alloc_job:
 		error_code = EINVAL;
 	if ((error_code != SLURM_SUCCESS) || (mode != SELECT_MODE_RUN_NOW)) {
 		FREE_NULL_BITMAP(free_cores);
+		xfree(cpu_count);
 		return error_code;
 	}
 
diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c
index d7e7e554e65..fa31ed9fc7e 100644
--- a/src/slurmctld/job_mgr.c
+++ b/src/slurmctld/job_mgr.c
@@ -3544,6 +3544,7 @@ static void _list_delete_job(void *job_entry)
 		delete_step_records(job_ptr, 0);
 		list_destroy(job_ptr->step_list);
 	}
+	xfree(job_ptr->wckey);
 	job_count--;
 	xfree(job_ptr);
 }
diff --git a/src/slurmctld/node_scheduler.c b/src/slurmctld/node_scheduler.c
index bd986f89b11..59a82bd961c 100644
--- a/src/slurmctld/node_scheduler.c
+++ b/src/slurmctld/node_scheduler.c
@@ -352,7 +352,7 @@ _get_req_features(struct node_set *node_set_ptr, int node_set_size,
 		if (job_ptr->details->req_node_bitmap &&
 		    (!bit_super_set(job_ptr->details->req_node_bitmap,
 				    resv_bitmap))) {
-			bit_free(resv_bitmap);
+			FREE_NULL_BITMAP(resv_bitmap);
 			return ESLURM_RESERVATION_NOT_USABLE;
 		}
 		if (resv_bitmap &&
@@ -360,7 +360,8 @@ _get_req_features(struct node_set *node_set_ptr, int node_set_size,
 			bit_and(resv_bitmap, avail_node_bitmap);
 			save_avail_node_bitmap = avail_node_bitmap;
 			avail_node_bitmap = resv_bitmap;
-		}
+		} else
+			FREE_NULL_BITMAP(resv_bitmap);
 	}
 
 	/* save job and request state */
-- 
GitLab