summaryrefslogtreecommitdiff
path: root/ares__read_line.c
diff options
context:
space:
mode:
Diffstat (limited to 'ares__read_line.c')
-rw-r--r--ares__read_line.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/ares__read_line.c b/ares__read_line.c
index bd9504f..c62ad2a 100644
--- a/ares__read_line.c
+++ b/ares__read_line.c
@@ -36,7 +36,7 @@ int ares__read_line(FILE *fp, char **buf, size_t *bufsize)
if (*buf == NULL)
{
- *buf = malloc(128);
+ *buf = ares_malloc(128);
if (!*buf)
return ARES_ENOMEM;
*bufsize = 128;
@@ -59,9 +59,13 @@ int ares__read_line(FILE *fp, char **buf, size_t *bufsize)
continue;
/* Allocate more space. */
- newbuf = realloc(*buf, *bufsize * 2);
+ newbuf = ares_realloc(*buf, *bufsize * 2);
if (!newbuf)
- return ARES_ENOMEM;
+ {
+ ares_free(*buf);
+ *buf = NULL;
+ return ARES_ENOMEM;
+ }
*buf = newbuf;
*bufsize *= 2;
}