Message ID | 20201116095437.116609-1-colin.king@canonical.com |
---|---|
State | Accepted |
Headers | show |
Series | lib: fwts_json: fix memory leaks on error return paths | expand |
On 2020-11-16 2:54 a.m., Colin King wrote: > From: Colin Ian King <colin.king@canonical.com> > > Memory leaks of str and tmp are occurring on error return paths, free > them before returning. > > Signed-off-by: Colin Ian King <colin.king@canonical.com> > --- > src/lib/src/fwts_json.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/src/lib/src/fwts_json.c b/src/lib/src/fwts_json.c > index 130e5ccb..c92dd512 100644 > --- a/src/lib/src/fwts_json.c > +++ b/src/lib/src/fwts_json.c > @@ -924,9 +924,12 @@ static char *json_object_to_json_string_indent(json_object *obj, int indent) > if (!str) > return NULL; > tmp = str_escape((char *)obj->u.ptr); > - if (!tmp) > + if (!tmp) { > + free(str); > return NULL; > + } > str = str_append(str, tmp); > + free(tmp); > if (!str) > return NULL; > str = str_append(str, "\""); > Acked-by: Alex Hung <alex.hung@canonical.com>
On 11/16/20 5:54 PM, Colin King wrote: > From: Colin Ian King <colin.king@canonical.com> > > Memory leaks of str and tmp are occurring on error return paths, free > them before returning. > > Signed-off-by: Colin Ian King <colin.king@canonical.com> > --- > src/lib/src/fwts_json.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/src/lib/src/fwts_json.c b/src/lib/src/fwts_json.c > index 130e5ccb..c92dd512 100644 > --- a/src/lib/src/fwts_json.c > +++ b/src/lib/src/fwts_json.c > @@ -924,9 +924,12 @@ static char *json_object_to_json_string_indent(json_object *obj, int indent) > if (!str) > return NULL; > tmp = str_escape((char *)obj->u.ptr); > - if (!tmp) > + if (!tmp) { > + free(str); > return NULL; > + } > str = str_append(str, tmp); > + free(tmp); > if (!str) > return NULL; > str = str_append(str, "\""); > Acked-by: Ivan Hu <ivan.hu@canonical.com>
diff --git a/src/lib/src/fwts_json.c b/src/lib/src/fwts_json.c index 130e5ccb..c92dd512 100644 --- a/src/lib/src/fwts_json.c +++ b/src/lib/src/fwts_json.c @@ -924,9 +924,12 @@ static char *json_object_to_json_string_indent(json_object *obj, int indent) if (!str) return NULL; tmp = str_escape((char *)obj->u.ptr); - if (!tmp) + if (!tmp) { + free(str); return NULL; + } str = str_append(str, tmp); + free(tmp); if (!str) return NULL; str = str_append(str, "\"");