From 2ff398c68578bef389a27c9e429c2ee0e2b44d10 Mon Sep 17 00:00:00 2001
From: Benno Schulenberg <bensberg@telfort.nl>
Date: Mon, 15 Jan 2018 13:06:35 +0100
Subject: [PATCH] tweaks: reshuffle some stuff, and avoid a memory leak

---
 src/rcfile.c | 23 +++++++++++------------
 1 file changed, 11 insertions(+), 12 deletions(-)

diff --git a/src/rcfile.c b/src/rcfile.c
index 27ea408d..483addb6 100644
--- a/src/rcfile.c
+++ b/src/rcfile.c
@@ -774,22 +774,21 @@ bool parse_color_names(char *combostr, short *fg, short *bg, bool *bright)
 	return TRUE;
 }
 
-/* Parse interface color options. */
+/* Parse the argument of an interface color option. */
 colortype *parse_interface_color(char *combostr)
 {
-	short fg, bg;
-	bool bright = FALSE;
-	colortype *newcolor;
-
-	if (!parse_color_names(combostr, &fg, &bg, &bright))
-		return NULL;
+	colortype *trio = nmalloc(sizeof(colortype));
 
-	newcolor = (colortype *)nmalloc(sizeof(colortype));
-	newcolor->fg = fg;
-	newcolor->bg = bg;
-	newcolor->bright = bright;
+	trio->bright = FALSE;
 
-	return newcolor;
+	if (parse_color_names(combostr, &trio->fg, &trio->bg, &trio->bright)) {
+		free(combostr);
+		return trio;
+	} else {
+		free(combostr);
+		free(trio);
+		return NULL;
+	}
 }
 
 /* Read regex strings enclosed in double quotes from the line pointed at
-- 
GitLab