[Top][All Lists]
[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
- [PATCH] (getdelim): Don't leak memory upon failed realloc.,
Jim Meyering <=