diff mbox series

lib: fwts_json: fix memory leaks on error return paths

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

Commit Message

Colin Ian King Nov. 16, 2020, 9:54 a.m. UTC
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(-)

Comments

Alex Hung Nov. 16, 2020, 5:55 p.m. UTC | #1
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>
Ivan Hu Nov. 20, 2020, 5:30 a.m. UTC | #2
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 mbox series

Patch

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, "\"");