From 84347b529d033a88bbee9282caf21fbf8b8889f2 Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Tue, 4 Jan 2005 20:58:49 +0000
Subject: [PATCH] Fix a couple of memory leaks.

---
 src/common/read_config.c    | 13 +++++++------
 src/slurmctld/read_config.c |  1 +
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/common/read_config.c b/src/common/read_config.c
index a21506e16e7..5674795a960 100644
--- a/src/common/read_config.c
+++ b/src/common/read_config.c
@@ -68,6 +68,7 @@ bool all_slurmd_hosts = false;
 #define NAME_HASH_LEN 512
 static names_ll_t *host_to_node_hashtbl[NAME_HASH_LEN] = {NULL};
 static names_ll_t *node_to_host_hashtbl[NAME_HASH_LEN] = {NULL};
+static char *this_hostname = NULL;
 
 static void _free_name_hashtbl()
 {
@@ -94,6 +95,7 @@ static void _free_name_hashtbl()
 		}
 		node_to_host_hashtbl[i] = NULL;
 	}
+	xfree(this_hostname);
 }
 
 static void _init_name_hashtbl()
@@ -159,7 +161,6 @@ static void _register_conf_node_aliases(char *node_name, char *node_hostname)
 {
 	hostlist_t node_list = NULL, host_list = NULL;
 	char *hn = NULL, *nn;
-	static char *me = NULL;
 
 	if (node_name == NULL || *node_name == '\0')
 		return;
@@ -169,16 +170,16 @@ static void _register_conf_node_aliases(char *node_name, char *node_hostname)
 		}
 		return;
 	}
-	if (!me) {
-		me = xmalloc(MAX_NAME_LEN);
-		getnodename(me, MAX_NAME_LEN);
+	if (!this_hostname) {
+		this_hostname = xmalloc(MAX_NAME_LEN);
+		getnodename(this_hostname, MAX_NAME_LEN);
 	}
 	if (strcasecmp(node_name, "localhost") == 0)
-		node_name = me;
+		node_name = this_hostname;
 	if (node_hostname == NULL)
 		node_hostname = node_name;
 	if (strcasecmp(node_hostname, "localhost") == 0)
-		node_hostname = me;
+		node_hostname = this_hostname;
 
 	node_list = hostlist_create(node_name);
 #ifdef HAVE_FRONT_END	/* Common NodeHostname for all NodeName values */
diff --git a/src/slurmctld/read_config.c b/src/slurmctld/read_config.c
index ce07cf73f43..bfc413999b3 100644
--- a/src/slurmctld/read_config.c
+++ b/src/slurmctld/read_config.c
@@ -478,6 +478,7 @@ static int _parse_node_spec(char *in_line)
 
 	/* free allocated storage */
 	xfree(node_addr);
+	xfree(node_hostname);
 	xfree(reason);
 	if (addr_list)
 		hostlist_destroy(addr_list);
-- 
GitLab