From ba389ed8b790a128a853908952016bca92dc21dd Mon Sep 17 00:00:00 2001 From: Hwankyu Jhun Date: Wed, 14 Dec 2016 13:36:43 +0900 Subject: [PATCH] Fix resource leak Change-Id: Ia27ac19283e2b4ffaaba990c7bb8b19a0e1495dd Signed-off-by: Hwankyu Jhun --- src/esd_main.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/esd_main.c b/src/esd_main.c index c7fb780..1bbe29d 100644 --- a/src/esd_main.c +++ b/src/esd_main.c @@ -2145,6 +2145,7 @@ static int __esd_init() client = pkgmgr_client_new(PC_LISTENING); if (client == NULL) { _E("set pkgmgr client failed"); + __esd_finish_cynara(); return ES_R_ERROR; } @@ -2154,7 +2155,7 @@ static int __esd_init() ret = pkgmgr_client_free(client); if (ret != PKGMGR_R_OK) _E("pkgmgr_client_free failed(%d)", ret); - + __esd_finish_cynara(); return ES_R_ENOMEM; } @@ -2164,7 +2165,8 @@ static int __esd_init() ret = pkgmgr_client_free(client); if (ret != PKGMGR_R_OK) _E("pkgmgr_client_free failed(%d)", ret); - + free(pkg_event); + __esd_finish_cynara(); return ES_R_ERROR; } @@ -2269,19 +2271,25 @@ static void __esd_finalize(void) int main(int argc, char *argv[]) { - GMainLoop *mainloop = NULL; + GMainLoop *mainloop; _I("event system daemon : main()"); mainloop = g_main_loop_new(NULL, FALSE); + if (mainloop == NULL) { + _E("out of memory"); + return ES_R_ERROR; + } if (__esd_init() != 0) { _E("ESD Initialization failed!"); + g_main_loop_unref(mainloop); return ES_R_ERROR; } if (__esd_before_loop() < 0) { _E("ESD failed!"); __esd_finalize(); + g_main_loop_unref(mainloop); return ES_R_ERROR; } -- 2.7.4