From bb57098100a9f47b1a0f6e2be8aa0a85a2d33384 Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Mon, 15 Sep 2014 13:30:46 +0300 Subject: [PATCH] obexd/client: Fix leaking memory on MNS In case an event is received twice, due to remote side misbehaving or not, it would leak the previous data. --- obexd/client/mns.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/obexd/client/mns.c b/obexd/client/mns.c index d638886ee..124dbcfb7 100644 --- a/obexd/client/mns.c +++ b/obexd/client/mns.c @@ -194,6 +194,8 @@ static void parse_event_report_folder(struct map_event *event, if (!value) return; + g_free(event->folder); + if (g_str_has_prefix(value, "/")) event->folder = g_strdup(value); else @@ -206,6 +208,8 @@ static void parse_event_report_old_folder(struct map_event *event, if (!value) return; + g_free(event->old_folder); + if (g_str_has_prefix(value, "/")) event->old_folder = g_strdup(value); else @@ -215,6 +219,10 @@ static void parse_event_report_old_folder(struct map_event *event, static void parse_event_report_msg_type(struct map_event *event, const char *value) { + if (!value) + return; + + g_free(event->msg_type); event->msg_type = g_strdup(value); } -- 2.47.3