[PATCH:xmessage] Stop leaking temporary buffer when realloc fails to enlarge it

Alan Coopersmith alan.coopersmith at oracle.com
Mon Dec 9 21:30:21 PST 2013


Fixes cppcheck error:
[readfile.c:108]: (error) Common realloc mistake: 'cp' nulled
 but not freed upon failure

Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
---
 readfile.c |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/readfile.c b/readfile.c
index 9729854..122020f 100644
--- a/readfile.c
+++ b/readfile.c
@@ -104,9 +104,11 @@ get_data_from_stdin (int *len_return)
 	count += n;
 	/* Here count <= allocated. Prepare for next round. */
 	if (count + BUFSIZ > allocated) {
+	    char *oldp = cp;
 	    allocated = 2 * allocated;
 	    cp = realloc (cp, allocated + 1);
 	    if (!cp) {
+		free(oldp);
 		fprintf(stderr, "cannot get memory for message file\n");
 		return NULL;
 	    }
-- 
1.7.9.2



More information about the xorg-devel mailing list