From a2fd84c0a3363fc42fff317365ce14bce7350025 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Sat, 8 Feb 2014 10:21:53 -0800 Subject: [PATCH] Fix more memory leaks --- jsonpull.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/jsonpull.c b/jsonpull.c index 11d0bc8..651e789 100644 --- a/jsonpull.c +++ b/jsonpull.c @@ -404,7 +404,7 @@ again: c = j->peek(j); if (c < '0' || c > '9') { j->error = "Exponent without digits"; - free(val.buf); + string_free(&val); return NULL; } while (c >= '0' && c <= '9') { @@ -468,7 +468,7 @@ again: } } else { j->error = "Found backslash followed by unknown character"; - free(val.buf); + string_free(&val); return NULL; } } else { @@ -478,8 +478,11 @@ again: json_object *s = add_object(j, JSON_STRING); if (s != NULL) { + val.buf = realloc(val.buf, val.n + 1); s->string = val.buf; s->length = val.n; + } else { + string_free(&val); } return s; }