[PATCH:xmodmap 2/3] Free copy of input line at end of process_line instead of leaking it

Alan Coopersmith alan.coopersmith at oracle.com
Fri Nov 11 21:27:05 PST 2011


Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
---
 pf.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/pf.c b/pf.c
index 0cc8101..0eb0f55 100644
--- a/pf.c
+++ b/pf.c
@@ -30,6 +30,7 @@ from The Open Group.
 #include <X11/Xlib.h>
 #include <stdio.h>
 #include <ctype.h>
+#include <stdlib.h>
 #include "xmodmap.h"
 
 #define NOTINFILEFILENAME "commandline"
@@ -96,11 +97,11 @@ void process_line (const char *line)
 	register char c = buffer[i];
 	if (!(isspace(c) || c == '\n')) break;
     }
-    if (i == len) return;
+    if (i == len) goto done;
 
     cp = &buffer[i];
 
-    if (*cp == '!') return;		/* look for comments */
+    if (*cp == '!') goto done;		/* look for comments */
     len -= (cp - buffer);		/* adjust len by how much we skipped */
 
 					/* pipe through cpp */
@@ -118,4 +119,7 @@ void process_line (const char *line)
 
     /* handle input */
     handle_line (cp, len);
+
+  done:
+    free(buffer);
 }
-- 
1.7.3.2



More information about the xorg-devel mailing list