From d471c25b3504e46ae3bc0241ce93fc4fd61e3628 Mon Sep 17 00:00:00 2001
From: Tim Wickberg <tim@schedmd.com>
Date: Fri, 22 Jan 2016 17:06:33 -0500
Subject: [PATCH] remove superfluous xstrdup(cluster_flag) calls

Superfluous xstrdup call to passed argument causes
a small memory leak in sreport, caught by Coverity.
---
 src/sreport/cluster_reports.c | 9 +++------
 src/sreport/job_reports.c     | 3 +--
 src/sreport/resv_reports.c    | 4 ++--
 src/sreport/user_reports.c    | 3 +--
 4 files changed, 7 insertions(+), 12 deletions(-)

diff --git a/src/sreport/cluster_reports.c b/src/sreport/cluster_reports.c
index 0a74957f553..a9355209477 100644
--- a/src/sreport/cluster_reports.c
+++ b/src/sreport/cluster_reports.c
@@ -95,8 +95,7 @@ static int _set_wckey_cond(int *start, int argc, char *argv[],
 	if (!wckey_cond->cluster_list)
 		wckey_cond->cluster_list = list_create(slurm_destroy_char);
 	if (cluster_flag)
-		slurm_addto_char_list(wckey_cond->cluster_list,
-				      xstrdup(cluster_flag));
+		slurm_addto_char_list(wckey_cond->cluster_list, cluster_flag);
 
 	for (i = (*start); i < argc; i++) {
 		end = parse_option_end(argv[i]);
@@ -203,8 +202,7 @@ static int _set_assoc_cond(int *start, int argc, char *argv[],
 	if (!assoc_cond->cluster_list)
 		assoc_cond->cluster_list = list_create(slurm_destroy_char);
 	if (cluster_flag)
-		slurm_addto_char_list(assoc_cond->cluster_list,
-				      xstrdup(cluster_flag));
+		slurm_addto_char_list(assoc_cond->cluster_list, cluster_flag);
 
 	for (i = (*start); i < argc; i++) {
 		end = parse_option_end(argv[i]);
@@ -309,8 +307,7 @@ static int _set_cluster_cond(int *start, int argc, char *argv[],
 	if (!cluster_cond->cluster_list)
 		cluster_cond->cluster_list = list_create(slurm_destroy_char);
 	if (cluster_flag)
-		slurm_addto_char_list(cluster_cond->cluster_list,
-				      xstrdup(cluster_flag));
+		slurm_addto_char_list(cluster_cond->cluster_list, cluster_flag);
 
 	for (i = (*start); i < argc; i++) {
 		end = parse_option_end(argv[i]);
diff --git a/src/sreport/job_reports.c b/src/sreport/job_reports.c
index 8acf8813d45..64b9ed5461d 100644
--- a/src/sreport/job_reports.c
+++ b/src/sreport/job_reports.c
@@ -253,8 +253,7 @@ static int _set_cond(int *start, int argc, char *argv[],
 	if (!job_cond->cluster_list)
 		job_cond->cluster_list = list_create(slurm_destroy_char);
 	if (cluster_flag)
-		slurm_addto_char_list(job_cond->cluster_list,
-				      xstrdup(cluster_flag));
+		slurm_addto_char_list(job_cond->cluster_list, cluster_flag);
 
 	for (i = (*start); i < argc; i++) {
 		end = parse_option_end(argv[i]);
diff --git a/src/sreport/resv_reports.c b/src/sreport/resv_reports.c
index 0826a58e28e..6c8f9e39d56 100644
--- a/src/sreport/resv_reports.c
+++ b/src/sreport/resv_reports.c
@@ -101,8 +101,8 @@ static int _set_resv_cond(int *start, int argc, char *argv[],
 	if (!resv_cond->cluster_list)
 		resv_cond->cluster_list = list_create(slurm_destroy_char);
 	if (cluster_flag)
-		slurm_addto_char_list(resv_cond->cluster_list,
-				      xstrdup(cluster_flag));
+		slurm_addto_char_list(resv_cond->cluster_list, cluster_flag);
+
 	for (i=(*start); i<argc; i++) {
 		end = parse_option_end(argv[i]);
 		if (!end)
diff --git a/src/sreport/user_reports.c b/src/sreport/user_reports.c
index cb2a5438707..28d154a20ff 100644
--- a/src/sreport/user_reports.c
+++ b/src/sreport/user_reports.c
@@ -82,8 +82,7 @@ static int _set_cond(int *start, int argc, char *argv[],
 	if (!assoc_cond->cluster_list)
 		assoc_cond->cluster_list = list_create(slurm_destroy_char);
 	if (cluster_flag)
-		slurm_addto_char_list(assoc_cond->cluster_list,
-				      xstrdup(cluster_flag));
+		slurm_addto_char_list(assoc_cond->cluster_list, cluster_flag);
 
 	for (i = (*start); i < argc; i++) {
 		end = parse_option_end(argv[i]);
-- 
GitLab