From 303e9302dffc61baba1dbf4f08a8e80883a70b2a Mon Sep 17 00:00:00 2001 From: Li Xiaoming Date: Wed, 24 Feb 2021 18:45:17 +0800 Subject: Fix potential memory leak json structure allocating code should be placed in where it is used, if there is a condition check which may cause a return before the before-mentioned place in the function. Bug-AGL: SPEC-3584 Change-Id: I9b5228c62a7e3bef055d7bdb0950d2bd4e058265 Signed-off-by: Li Xiaoming --- binding/bluetooth-map-api.c | 3 ++- binding/bluetooth-map-bmessage.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/binding/bluetooth-map-api.c b/binding/bluetooth-map-api.c index b0a97d7..512630e 100644 --- a/binding/bluetooth-map-api.c +++ b/binding/bluetooth-map-api.c @@ -236,7 +236,7 @@ static void map_subscribe_unsubscribe(afb_req_t request, gboolean unsub) { struct map_state *ns = map_get_userdata(request); - json_object *jresp = json_object_new_object(); + json_object *jresp; const char *value; afb_event_t event; int rc; @@ -268,6 +268,7 @@ static void map_subscribe_unsubscribe(afb_req_t request, return; } + jresp = json_object_new_object(); afb_req_success_f(request, jresp, "Bluetooth MAP %s to event \"%s\"", !unsub ? "subscribed" : "unsubscribed", value); diff --git a/binding/bluetooth-map-bmessage.c b/binding/bluetooth-map-bmessage.c index f98d6de..c893649 100644 --- a/binding/bluetooth-map-bmessage.c +++ b/binding/bluetooth-map-bmessage.c @@ -197,7 +197,7 @@ static void sanitize_msg(gchar **msg) json_object *bmessage_parse(const gchar *bmessage) { gchar **msg; - json_object *jresp = json_object_new_object(); + json_object *jresp; gboolean ret; if (!bmessage || !strlen(bmessage)) @@ -208,6 +208,7 @@ json_object *bmessage_parse(const gchar *bmessage) msg = g_strsplit(bmessage, "\n", -1); sanitize_msg(msg); + jresp = json_object_new_object(); ret = __bmessage_parse(msg, jresp); if (!ret) { json_object_put(jresp); -- cgit 1.2.3-korg