diff --git a/src/api/federation_info.c b/src/api/federation_info.c
index 0d765b64e3513c831bb6b46975505b2a42f8f22b..2cf02465d36dd68775a4175cecba50a0eaa66562 100644
--- a/src/api/federation_info.c
+++ b/src/api/federation_info.c
@@ -100,7 +100,7 @@ extern void slurm_print_federation(void *ptr)
 	slurmdb_cluster_rec_t *cluster;
 	int left_col_size;
 	char *conn_status[] = {"Disconnected", "Connected"};
-	char *cluster_name = slurm_get_cluster_name();
+	char *cluster_name = NULL;
 
 	slurmdb_federation_rec_t *fed = (slurmdb_federation_rec_t *)ptr;
 
@@ -109,6 +109,8 @@ extern void slurm_print_federation(void *ptr)
 	if (!fed->name)
 		return;
 
+	cluster_name = slurm_get_cluster_name();
+
 	left_col_size = strlen("federation:");
 	printf("%-*s %s\n", left_col_size, "Federation:", fed->name);
 	list_sort(fed->cluster_list, (ListCmpF)_sort_clusters_by_name);
diff --git a/src/plugins/accounting_storage/mysql/as_mysql_federation.c b/src/plugins/accounting_storage/mysql/as_mysql_federation.c
index 9baf6f7cff7292afc26fc4f3f22b09b25c404b95..df28f899154cb2064522a031f47696798be98ed6 100644
--- a/src/plugins/accounting_storage/mysql/as_mysql_federation.c
+++ b/src/plugins/accounting_storage/mysql/as_mysql_federation.c
@@ -367,6 +367,7 @@ extern int as_mysql_add_federations(mysql_conn_t *mysql_conn, uint32_t uid,
 			xfree(cols);
 			xfree(vals);
 			xfree(extra);
+			xfree(user_name);
 			return SLURM_ERROR;
 		}
 
diff --git a/src/sacctmgr/cluster_functions.c b/src/sacctmgr/cluster_functions.c
index d9e6c5bfd9f0562adc12dfd38a8138a7a01d379a..9ecb3f8c12cc4d7b18f92a9e34e95f786e7a630c 100644
--- a/src/sacctmgr/cluster_functions.c
+++ b/src/sacctmgr/cluster_functions.c
@@ -356,7 +356,7 @@ extern int sacctmgr_add_cluster(int argc, char *argv[])
 		}
 	}
 
-	if (start_cluster && start_cluster->fed.name) {
+	if (start_cluster->fed.name) {
 		int rc;
 		List fed_list = list_create(slurm_destroy_char);
 		list_append(fed_list, xstrdup(start_cluster->fed.name));
diff --git a/src/sacctmgr/federation_functions.c b/src/sacctmgr/federation_functions.c
index 2bf270c47a705244c92de9a6ef2c19d0979fcce6..970951ff5edaee595dfc78b47006039004ac6097 100644
--- a/src/sacctmgr/federation_functions.c
+++ b/src/sacctmgr/federation_functions.c
@@ -42,7 +42,6 @@ static int _set_cond(int *start, int argc, char *argv[],
 		     List format_list)
 {
 	int i;
-	int c_set = 0;
 	int a_set = 0;
 	int end = 0;
 	int command_len = 0;
@@ -96,13 +95,7 @@ static int _set_cond(int *start, int argc, char *argv[],
 	}
 	(*start) = i;
 
-	if (c_set && a_set)
-		return 3;
-	else if (a_set) {
-		return 2;
-	} else if (c_set)
-		return 1;
-	return 0;
+	return a_set;
 }
 
 static int _set_rec(int *start, int argc, char *argv[],
diff --git a/src/slurmctld/fed_mgr.c b/src/slurmctld/fed_mgr.c
index 4048f6a8624cfa58438f563787da634f86b7ca68..9e33109d10ae41ac2df79bca3640397501702fcb 100644
--- a/src/slurmctld/fed_mgr.c
+++ b/src/slurmctld/fed_mgr.c
@@ -410,9 +410,12 @@ extern int fed_mgr_state_save(char *state_save_location)
 	pack_time(time(NULL), buffer);
 
 	memset(&msg, 0, sizeof(dbd_list_msg_t));
+
+	slurm_mutex_lock(&fed_mutex);
 	msg.my_list = fed_mgr_siblings;
 	slurmdbd_pack_list_msg(&msg, SLURM_PROTOCOL_VERSION,
 			       DBD_ADD_CLUSTERS, buffer);
+	slurm_mutex_unlock(&fed_mutex);
 
 	/* write the buffer to file */
 	reg_file = xstrdup_printf("%s/%s", state_save_location,
@@ -562,8 +565,7 @@ extern int fed_mgr_state_load(char *state_save_location)
 	return SLURM_SUCCESS;
 
 unpack_error:
-	if (buffer)
-		free_buf(buffer);
+	free_buf(buffer);
 
 	slurm_mutex_unlock(&fed_mutex);
 	return SLURM_ERROR;