From: Hwankyu Jhun Date: Sun, 10 Apr 2016 22:59:19 +0000 (+0900) Subject: Fix resource leak X-Git-Tag: accepted/tizen/common/20160412.130739^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d3ad2a36544fbee84fe740b793f87972f074fb93;p=platform%2Fcore%2Fappfw%2Fdebug-launchpad.git Fix resource leak Change-Id: Ided78920a8b2e1199ab1bc4cd16ee4c7704e413c Signed-off-by: Hwankyu Jhun --- diff --git a/src/common.c b/src/common.c index 7ff591a..ff3f6ee 100644 --- a/src/common.c +++ b/src/common.c @@ -672,20 +672,19 @@ char **_create_argc_argv(bundle *kb, int *margc, const char *app_path) argv = new_argv; } else if (strncmp(str_array[i], SDK_ATTACH, strlen(str_array[i])) == 0) { + if (argv[0]) + free(argv[0]); + bundle_free_exported_argv(argc, &argv); + *margc = 0; path = bundle_get_val(kb, DLP_K_GDBSERVER_PATH); if (path == NULL) { _E("Failed to get gdbserver path"); - if (argv[0]) - free(argv[0]); - bundle_free_exported_argv(argc, &argv); - *margc = 0; return NULL; } new_argv = __add_arg(kb, argv, &argc, DLP_K_ATTACH_ARG); new_argv[0] = strdup(path); argv = new_argv; } - } *margc = argc; diff --git a/src/debug-launchpad.c b/src/debug-launchpad.c index bbe7b60..ed5d636 100644 --- a/src/debug-launchpad.c +++ b/src/debug-launchpad.c @@ -425,11 +425,26 @@ static gboolean __glib_prepare(GSource *src, gint *timeout) return FALSE; } +static void __glib_finalize(GSource *src) +{ + GSList *fd_list; + GPollFD *gpollfd; + + fd_list = src->poll_fds; + do { + gpollfd = (GPollFD *)fd_list->data; + close(gpollfd->fd); + g_free(gpollfd); + + fd_list = fd_list->next; + } while (fd_list); +} + static GSourceFuncs funcs = { .prepare = __glib_prepare, .check = __glib_check, .dispatch = __glib_dispatch, - .finalize = NULL + .finalize = __glib_finalize }; static int __poll_fd(int fd, GSourceFunc callback)