diff --git a/src/plugins/sched/backfill/backfill.c b/src/plugins/sched/backfill/backfill.c
index df438639981fa54ebde34f51589e3db04f21af55..f210b57cf49c49e060c19989c59b93334ac6b21d 100644
--- a/src/plugins/sched/backfill/backfill.c
+++ b/src/plugins/sched/backfill/backfill.c
@@ -701,9 +701,9 @@ static int _attempt_backfill(void)
 		/* Determine impact of any resource reservations */
 		later_start = now;
  TRY_LATER:	FREE_NULL_BITMAP(avail_bitmap);
+		FREE_NULL_BITMAP(exc_core_bitmap);
 		start_res   = later_start;
 		later_start = 0;
-		exc_core_bitmap = NULL;
 		j = job_test_resv(job_ptr, &start_res, true, &avail_bitmap,
 				  &exc_core_bitmap);
 		if (j != SLURM_SUCCESS) {
@@ -890,6 +890,7 @@ static int _attempt_backfill(void)
 	xfree(uid);
 	xfree(njobs);
 	FREE_NULL_BITMAP(avail_bitmap);
+	FREE_NULL_BITMAP(exc_core_bitmap);
 	FREE_NULL_BITMAP(resv_bitmap);
 
 	for (i=0; ; ) {
diff --git a/src/plugins/sched/builtin/builtin.c b/src/plugins/sched/builtin/builtin.c
index b581a0d5b35f23423cf613ed68c7a6ec4e8725ec..047b602e9d3fca0e63229a87dcdda970269e22d6 100644
--- a/src/plugins/sched/builtin/builtin.c
+++ b/src/plugins/sched/builtin/builtin.c
@@ -196,8 +196,11 @@ static void _compute_start_times(void)
 
 		j = job_test_resv(job_ptr, &now, true, &avail_bitmap,
 				  &exc_core_bitmap);
-		if (j != SLURM_SUCCESS)
+		if (j != SLURM_SUCCESS) {
+			FREE_NULL_BITMAP(avail_bitmap);
+			FREE_NULL_BITMAP(exc_core_bitmap);
 			continue;
+		}
 
 		rc = select_g_job_test(job_ptr, avail_bitmap,
 				       min_nodes, max_nodes, req_nodes,
@@ -223,6 +226,7 @@ static void _compute_start_times(void)
 			last_job_alloc = job_ptr->start_time + time_limit;
 		}
 		FREE_NULL_BITMAP(avail_bitmap);
+		FREE_NULL_BITMAP(exc_core_bitmap);
 
 		if ((time(NULL) - sched_start) >= sched_timeout) {
 			debug("backfill: loop taking to long, breaking out");
diff --git a/src/plugins/sched/wiki2/job_will_run.c b/src/plugins/sched/wiki2/job_will_run.c
index 13eeeedebaf45a87634a3a34276ccd40412e7d9f..e2010a47461d1a64f76dbb410c326c6ddd801cbd 100644
--- a/src/plugins/sched/wiki2/job_will_run.c
+++ b/src/plugins/sched/wiki2/job_will_run.c
@@ -181,6 +181,7 @@ static char *	_will_run_test(uint32_t jobid, time_t start_time,
 		*err_msg = "Job denied access to reservation";
 		error("wiki: reservation access denied for job %u", jobid);
 		FREE_NULL_BITMAP(avail_bitmap);
+		FREE_NULL_BITMAP(exc_core_bitmap);
 		return NULL;
 	}
 	start_time = MAX(start_time, start_res);
@@ -199,6 +200,7 @@ static char *	_will_run_test(uint32_t jobid, time_t start_time,
 		error("wiki: no nodes in partition %s for job %u",
 			part_ptr->name, jobid);
 		FREE_NULL_BITMAP(avail_bitmap);
+		FREE_NULL_BITMAP(exc_core_bitmap);
 		return NULL;
 	}
 
@@ -210,6 +212,7 @@ static char *	_will_run_test(uint32_t jobid, time_t start_time,
 		error("wiki: job %u not runnable on hosts=%s",
 		      jobid, node_list);
 		FREE_NULL_BITMAP(avail_bitmap);
+		FREE_NULL_BITMAP(exc_core_bitmap);
 		return NULL;
 	}
 	if (job_ptr->details->exc_node_bitmap) {
@@ -225,6 +228,7 @@ static char *	_will_run_test(uint32_t jobid, time_t start_time,
 		error("wiki: job %u not runnable on hosts=%s",
 		      jobid, node_list);
 		FREE_NULL_BITMAP(avail_bitmap);
+		FREE_NULL_BITMAP(exc_core_bitmap);
 		return NULL;
 	}
 
@@ -246,6 +250,7 @@ static char *	_will_run_test(uint32_t jobid, time_t start_time,
 		error("wiki: job %u not runnable on hosts=%s",
 		      jobid, node_list);
 		FREE_NULL_BITMAP(avail_bitmap);
+		FREE_NULL_BITMAP(exc_core_bitmap);
 		return NULL;
 	}
 
@@ -287,6 +292,7 @@ static char *	_will_run_test(uint32_t jobid, time_t start_time,
 	/* Restore pending job's expected start time */
 	job_ptr->start_time = orig_start_time;
 	FREE_NULL_BITMAP(avail_bitmap);
+	FREE_NULL_BITMAP(exc_core_bitmap);
 	return reply_msg;
 }
 
@@ -465,6 +471,7 @@ static char *	_will_run_test2(uint32_t jobid, time_t start_time,
 		*err_msg = "Job denied access to reservation";
 		error("wiki: reservation access denied for job %u", jobid);
 		FREE_NULL_BITMAP(avail_bitmap);
+		FREE_NULL_BITMAP(exc_core_bitmap);
 		return NULL;
 	}
 	start_time = MAX(start_time, start_res);
@@ -483,6 +490,7 @@ static char *	_will_run_test2(uint32_t jobid, time_t start_time,
 		error("wiki: no nodes in partition %s for job %u",
 			part_ptr->name, jobid);
 		FREE_NULL_BITMAP(avail_bitmap);
+		FREE_NULL_BITMAP(exc_core_bitmap);
 		return NULL;
 	}
 
@@ -494,6 +502,7 @@ static char *	_will_run_test2(uint32_t jobid, time_t start_time,
 		error("wiki: job %u not runnable on hosts=%s",
 			jobid, node_list);
 		FREE_NULL_BITMAP(avail_bitmap);
+		FREE_NULL_BITMAP(exc_core_bitmap);
 		return NULL;
 	}
 	if (job_ptr->details->exc_node_bitmap) {
@@ -509,6 +518,7 @@ static char *	_will_run_test2(uint32_t jobid, time_t start_time,
 		error("wiki: job %u not runnable on hosts=%s",
 			jobid, node_list);
 		FREE_NULL_BITMAP(avail_bitmap);
+		FREE_NULL_BITMAP(exc_core_bitmap);
 		return NULL;
 	}
 
@@ -530,6 +540,7 @@ static char *	_will_run_test2(uint32_t jobid, time_t start_time,
 		error("wiki: job %u not runnable on hosts=%s",
 			jobid, node_list);
 		FREE_NULL_BITMAP(avail_bitmap);
+		FREE_NULL_BITMAP(exc_core_bitmap);
 		return NULL;
 	}
 
@@ -589,6 +600,7 @@ static char *	_will_run_test2(uint32_t jobid, time_t start_time,
 	job_ptr->start_time = orig_start_time;
 
 	FREE_NULL_BITMAP(avail_bitmap);
+	FREE_NULL_BITMAP(exc_core_bitmap);
 	return reply_msg;
 }