From c2a357fe1bd95c59c839e874decd83ca4607fc8b Mon Sep 17 00:00:00 2001 From: Christophe CURIS Date: Tue, 20 May 2014 21:46:41 +0200 Subject: [PATCH] WMaker: fix memory leak in app icon changing (Coverity #50139) As pointed by Coverity, there are some cases where the name of the file returned by wIconChooserDialog could be left unfreed. Signed-off-by: Christophe CURIS --- src/appicon.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/appicon.c b/src/appicon.c index 4d4d81eb..43a0f32a 100644 --- a/src/appicon.c +++ b/src/appicon.c @@ -534,13 +534,16 @@ static void setIconCallback(WMenu *menu, WMenuEntry *entry) result = wIconChooserDialog(scr, &file, icon->wm_instance, icon->wm_class); - if (result && !icon->destroyed) { - if (!wIconChangeImageFile(icon->icon, file)) { - wMessageDialog(scr, _("Error"), - _("Could not open specified icon file"), _("OK"), NULL, NULL); - } else { - wDefaultChangeIcon(icon->wm_instance, icon->wm_class, file); - wAppIconPaint(icon); + if (result) { + if (!icon->destroyed) { + if (!wIconChangeImageFile(icon->icon, file)) { + wMessageDialog(scr, _("Error"), + _("Could not open specified icon file"), + _("OK"), NULL, NULL); + } else { + wDefaultChangeIcon(icon->wm_instance, icon->wm_class, file); + wAppIconPaint(icon); + } } if (file) wfree(file);