diff --git a/src/common/assoc_mgr.c b/src/common/assoc_mgr.c
index 49d55237d7f4866c0414f4d5d639d1b31f169e25..6d83d81c8a5cae8b006397f3c49bc4507d6cdbd1 100644
--- a/src/common/assoc_mgr.c
+++ b/src/common/assoc_mgr.c
@@ -5088,6 +5088,7 @@ extern int dump_assoc_mgr_state(char *state_save_location)
 			tmp_char = _make_usage_tres_raw_str(
 				qos->usage->usage_tres_raw);
 			packstr(tmp_char, buffer);
+			xfree(tmp_char);
 			pack32(qos->usage->grp_used_wall, buffer);
 		}
 		list_iterator_destroy(itr);
@@ -5253,6 +5254,8 @@ extern int load_assoc_usage(char *state_save_location)
 					usage_tres_raw[i];
 			assoc = assoc->usage->parent_assoc_ptr;
 		}
+
+		xfree(tmp_str);
 	}
 	assoc_mgr_unlock(&locks);
 
@@ -5364,6 +5367,7 @@ extern int load_qos_usage(char *state_save_location)
 					    tmp_str);
 		}
 
+		xfree(tmp_str);
 		list_iterator_reset(itr);
 	}
 	list_iterator_destroy(itr);
diff --git a/src/common/read_config.c b/src/common/read_config.c
index d3b33560a9900dda6b29dab47f42cf080182fb5b..cde32f484356b44eb193c98d860a37d8a9104668 100644
--- a/src/common/read_config.c
+++ b/src/common/read_config.c
@@ -1383,6 +1383,7 @@ static void _destroy_partitionname(void *ptr)
 	xfree(p->deny_accounts);
 	xfree(p->deny_qos);
 	xfree(p->alternate);
+	xfree(p->billing_weights_str);
 	xfree(p->name);
 	xfree(p->nodes);
 	xfree(ptr);
diff --git a/src/slurmctld/controller.c b/src/slurmctld/controller.c
index 2c8f524798fdec9b4ab902e6915202121e134454..1941fed4438f37a5b8f8b636a83b0cf3293c08e0 100644
--- a/src/slurmctld/controller.c
+++ b/src/slurmctld/controller.c
@@ -1436,6 +1436,7 @@ static int _init_tres(void)
 		} else
 			slurmdb_destroy_tres_rec(tres_rec);
 	}
+	FREE_NULL_LIST(char_list);
 
 	if (add_list) {
 		if (acct_storage_g_add_tres(acct_db_conn, getuid(), add_list)
diff --git a/src/slurmctld/read_config.c b/src/slurmctld/read_config.c
index dccc5c2c315636dfe2dd7551fe2c9a1d64e8619a..4014c0cd27172f8f9ac7d5213c059a244317d032 100644
--- a/src/slurmctld/read_config.c
+++ b/src/slurmctld/read_config.c
@@ -170,6 +170,7 @@ static int _tres_weight_item(double *weights, char *item_str)
 		return SLURM_ERROR;
 	}
 
+	errno = 0;
 	weights[tres_id] = strtod(value, NULL);
 	if(errno) {
 		error("Unable to convert %s value to double in %s",