From ad36bdc773b33d7dd31775f52f9b0cafec516cbc Mon Sep 17 00:00:00 2001
From: David Lawrence Ramsey <pooka109@gmail.com>
Date: Sat, 2 Dec 2006 17:22:21 +0000
Subject: [PATCH] per Itay Perl's patch with a few additions of mine, fix
 various minor memory leaks

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3986 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
---
 ChangeLog   | 6 ++++++
 src/text.c  | 2 ++
 src/winio.c | 4 ++++
 3 files changed, 12 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index aa9b9236..74948854 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -12,9 +12,15 @@ CVS code -
 	  consistency. (DLR)
 	- Rename NANO_ALT_.* and NANO_.*ALTKEY to NANO_META_.* and
 	  NANO_.*METAKEY, for consistency. (DLR)
+- text.c:
+  do_verbatim_input()
+	- Fix minor memory leak. (DLR)
 - winio.c:
   parse_kbinput()
 	- Add missing break. (DLR)
+	- Fix minor memory leak. (Itay Perl)
+  parse_verbatim_kbinput()
+	- Fix minor memory leak. (DLR)
   edit_draw()
 	- Fix potential warnings when assigning -1 to paintlen by using
 	  if/else clauses instead of "?" operators. (DLR)
diff --git a/src/text.c b/src/text.c
index 48516f74..11ae0341 100644
--- a/src/text.c
+++ b/src/text.c
@@ -2446,6 +2446,8 @@ void do_verbatim_input(void)
 	output[i] = (char)kbinput[i];
     output[i] = '\0';
 
+    free(kbinput);
+
     do_output(output, kbinput_len, TRUE);
 
     free(output);
diff --git a/src/winio.c b/src/winio.c
index 71645245..37d8b574 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -663,6 +663,8 @@ int parse_kbinput(WINDOW *win, bool *meta_key, bool *func_key)
     fprintf(stderr, "parse_kbinput(): kbinput = %d, meta_key = %s, func_key = %s, escapes = %d, byte_digits = %d, retval = %d\n", *kbinput, *meta_key ? "TRUE" : "FALSE", *func_key ? "TRUE" : "FALSE", escapes, byte_digits, retval);
 #endif
 
+    free(kbinput);
+
     /* Return the result. */
     return retval;
 }
@@ -1535,6 +1537,8 @@ int *parse_verbatim_kbinput(WINDOW *win, size_t *kbinput_len)
 	/* Put back the first keystroke. */
 	unget_input(kbinput, 1);
 
+    free(kbinput);
+
     /* Get the complete sequence, and save the characters in it as the
      * result. */
     *kbinput_len = get_key_buffer_len();
-- 
GitLab