From 2c4000c044ba8721bc93b52497c0ad6ec3b20146 Mon Sep 17 00:00:00 2001
From: Brian Christiansen <brian@schedmd.com>
Date: Tue, 26 Jul 2016 15:18:46 -0600
Subject: [PATCH] Fix coverity issues.

---
 src/api/federation_info.c                                | 4 +++-
 .../accounting_storage/mysql/as_mysql_federation.c       | 1 +
 src/sacctmgr/cluster_functions.c                         | 2 +-
 src/sacctmgr/federation_functions.c                      | 9 +--------
 src/slurmctld/fed_mgr.c                                  | 6 ++++--
 5 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/src/api/federation_info.c b/src/api/federation_info.c
index 0d765b64e35..2cf02465d36 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 9baf6f7cff7..df28f899154 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 d9e6c5bfd9f..9ecb3f8c12c 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 2bf270c47a7..970951ff5ed 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 4048f6a8624..9e33109d10a 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;
-- 
GitLab