From a09e1a0e45d67d64b99406fd834b98d46cbd7db0 Mon Sep 17 00:00:00 2001 From: o9000 Date: Mon, 8 Aug 2016 11:15:59 +0200 Subject: [PATCH] Fixed multiple memory leaks --- src/execplugin/execplugin.c | 3 +++ src/launcher/icon-theme-common.c | 1 + src/launcher/launcher.c | 4 ++++ 3 files changed, 8 insertions(+) diff --git a/src/execplugin/execplugin.c b/src/execplugin/execplugin.c index 3ae5774..d04b513 100644 --- a/src/execplugin/execplugin.c +++ b/src/execplugin/execplugin.c @@ -59,6 +59,9 @@ void destroy_execp(void *obj) // This is a frontend element execp->backend->instances = g_list_remove_all(execp->backend->instances, execp); free_and_null(execp->frontend); + remove_area(&execp->area); + free_area(&execp->area); + free_and_null(execp); } else { // This is a backend element stop_timeout(execp->backend->timer); diff --git a/src/launcher/icon-theme-common.c b/src/launcher/icon-theme-common.c index 4d35763..082f924 100644 --- a/src/launcher/icon-theme-common.c +++ b/src/launcher/icon-theme-common.c @@ -305,6 +305,7 @@ void free_themes(IconThemeWrapper *wrapper) { if (!wrapper) return; + free(wrapper->icon_theme_name); for (GSList *l = wrapper->themes; l; l = l->next) { IconTheme *theme = (IconTheme *)l->data; free_icon_theme(theme); diff --git a/src/launcher/launcher.c b/src/launcher/launcher.c index 2deba4d..28113a9 100644 --- a/src/launcher/launcher.c +++ b/src/launcher/launcher.c @@ -452,7 +452,11 @@ void launcher_reload_icon(Launcher *launcher, LauncherIcon *launcherIcon) DesktopEntry entry; if (read_desktop_file(launcherIcon->config_path, &entry) && entry.exec) { schedule_redraw(&launcherIcon->area); + if (launcherIcon->cmd) + free(launcherIcon->cmd); launcherIcon->cmd = strdup(entry.exec); + if (launcherIcon->icon_name) + free(launcherIcon->icon_name); launcherIcon->icon_name = entry.icon ? strdup(entry.icon) : strdup(DEFAULT_ICON); if (entry.name) { if (entry.generic_name) {