diff options
Diffstat (limited to 'ares__read_line.c')
-rw-r--r-- | ares__read_line.c | 10 |
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; } |