From: jusung son Date: Tue, 10 Oct 2017 09:01:05 +0000 (+0900) Subject: Fix memory leak X-Git-Tag: accepted/tizen/4.0/unified/20171012.230150~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b150ed52f6e1bf3c921ac42fe83092f6de339b90;p=platform%2Fcore%2Fappfw%2Flibeventsystem.git Fix memory leak Change-Id: Ib81bbeabfcd374de1e505b05d93d876686863b2c Signed-off-by: jusung son --- diff --git a/src/eventsystem.c b/src/eventsystem.c old mode 100644 new mode 100755 index e51db0b..56d210c --- a/src/eventsystem.c +++ b/src/eventsystem.c @@ -851,14 +851,14 @@ static int __eventsystem_send_event(GDBusConnection *conn, eventinfo_s *evti, bu _D("object_path(%s)", evti->object_path); _D("member_name(%s)", evti->member_name); + bundle_free_encoded_rawdata(&raw); + if (ret == FALSE) { _E("Unable to connect to dbus: %s", error->message); g_error_free(error); return ES_R_ERROR; } - bundle_free_encoded_rawdata(&raw); - return ES_R_OK; } @@ -1717,7 +1717,7 @@ int eventsystem_keep_last_event_data(const char *event_name) item->param = NULL; item->trusted_param = NULL; - g_hash_table_insert(last_data_tbl, (char *)event_name, item); + g_hash_table_insert(last_data_tbl, item->event_name, item); ret = eventsystem_register_event(SYS_EVENT_REQUEST_LAST_DATA, ®_id, _send_last_user_event, NULL); @@ -1953,6 +1953,7 @@ int eventsystem_application_finalize(void) GHashTableIter iter; char *key_item; char *val_item; + struct last_data_item *last_item; _D("release all resouces"); @@ -1998,20 +1999,21 @@ int eventsystem_application_finalize(void) g_hash_table_iter_init(&iter, last_data_tbl); while (g_hash_table_iter_next(&iter, &key, &value)) { - key_item = (char *)key; - if (key_item) - free(key_item); - else - _E("last_data_tbl, val_item is NULL"); - - val_item = (char *)value; - if (val_item) - free(val_item); - else + last_item = (struct last_data_item *)value; + if (last_item) { + if (last_item->event_name) + free(last_item->event_name); + if (last_item->param) + g_variant_unref(last_item->param); + if (last_item->trusted_param) + g_variant_unref(last_item->trusted_param); + free(last_item); + } else { _E("last_data_tbl, val_item is NULL"); + } g_hash_table_iter_remove(&iter); } - g_hash_table_unref(check_tbl); + g_hash_table_unref(last_data_tbl); } FREE_AND_NULL(s_info.own_name_system_bus);