diff --git a/src/plugins/select/cons_res/job_test.c b/src/plugins/select/cons_res/job_test.c
index c5adc65d144976d8521c5e291c0acedee81f8ebc..4fdb1d6b91a0625751745c5e8bc71c69377a4eee 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 d7e7e554e6525be5691ea117074094bc1fa9ee56..fa31ed9fc7e2b7ff7776a9547ad22f33b8daf50e 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 bd986f89b11b584ca8509993d55f32cc7351599a..59a82bd961c50b8c59824dc7435c78139a5eb134 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 */