bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] (getdelim): Don't leak memory upon failed realloc.


From: Jim Meyering
Subject: [PATCH] (getdelim): Don't leak memory upon failed realloc.
Date: Sat, 01 Mar 2008 15:42:38 +0100

Hi Simon,

I noticed that our getdelim replacement can leak when the initial realloc
fails.  While that can happen only when *N is 0 and *LINEPTR is malloc'd,
I think it's worth fixing, if only to avoid further discussion on the topic.

Here's the fix.

Ok to apply?

        * lib/getdelim.c (getdelim): Don't leak memory upon failed realloc.

diff --git a/lib/getdelim.c b/lib/getdelim.c
index 0547c7f..7c6f326 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 (;;)
--
1.5.4.3.341.g956c8c




reply via email to

[Prev in Thread] Current Thread [Next in Thread]