From f19812dec8982dc3c69d3b6995025184dd4dbddb Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sat, 1 Mar 2008 12:14:27 +0100 Subject: [PATCH] lib/getdelim.c (getdelim): Don't leak memory upon failed realloc. --- ChangeLog | 2 ++ lib/getdelim.c | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 69e78c84f..29dc04a8b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2008-03-02 Jim Meyering + * lib/getdelim.c (getdelim): Don't leak memory upon failed realloc. + Remove useless "if" tests before free. Deprecate "free" module. * doc/posix-functions/free.texi: Mention that this module is no longer useful. diff --git a/lib/getdelim.c b/lib/getdelim.c index 0547c7fae..7c6f3265a 100644 --- a/lib/getdelim.c +++ b/lib/getdelim.c @@ -69,13 +69,15 @@ getdelim (char **lineptr, size_t *n, int delimiter, FILE *fp) if (*lineptr == NULL || *n == 0) { + char *new_lineptr; *n = 120; - *lineptr = (char *) realloc (*lineptr, *n); - if (*lineptr == NULL) + new_lineptr = (char *) realloc (*lineptr, *n); + if (new_lineptr == NULL) { result = -1; goto unlock_return; } + *lineptr = new_lineptr; } for (;;) -- 2.11.0