From 1f687b7572db75043aa2dbe5ce3c07d094fb592d Mon Sep 17 00:00:00 2001 From: Jerome Guelfucci <jeromeg@xfce.org> Date: Sun, 5 Oct 2008 08:19:33 +0000 Subject: [PATCH] Fix four memleaks detected by Gauvain Pocentek. (Old svn revision: 5512) --- ChangeLog | 8 ++++++++ src/main.c | 4 +++- src/screenshooter-utils.c | 9 +++++++-- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index a44ca8fc..68835941 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-10-05 jeromeg + + * Plug some leaks detected by Gauvain Pocentek: + - src/main.c: in (main), free sd->screenshot_dir before setting the new + value from command line. + - src/screenshooter-utils.c: in (save_screenshot), free filename before + getting the user set filename. + 2008-10-04 jeromeg * Partially refactor the code: diff --git a/src/main.c b/src/main.c index 2b07f31f..f1738ca4 100644 --- a/src/main.c +++ b/src/main.c @@ -191,10 +191,12 @@ int main(int argc, char **argv) /* Check if the path is absolute, if not make it absolute */ if (g_path_is_absolute (screenshot_dir)) { - sd->screenshot_dir = screenshot_dir; + g_free (sd->screenshot_dir); + sd->screenshot_dir = screenshot_dir; } else { + g_free (sd->screenshot_dir); sd->screenshot_dir = g_build_filename (g_get_current_dir (), screenshot_dir, NULL); g_free (screenshot_dir); diff --git a/src/screenshooter-utils.c b/src/screenshooter-utils.c index 91dc6aa6..ce86af58 100644 --- a/src/screenshooter-utils.c +++ b/src/screenshooter-utils.c @@ -240,6 +240,7 @@ void save_screenshot (GdkPixbuf *screenshot, gboolean show_save_dialog, if (dialog_response == GTK_RESPONSE_ACCEPT) { + g_free (filename); filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooser) ); gdk_pixbuf_save (screenshot, filename, "png", NULL, NULL); @@ -249,9 +250,13 @@ void save_screenshot (GdkPixbuf *screenshot, gboolean show_save_dialog, } else { + gchar * savename = NULL; /* Else, we just save the file in the default folder */ - filename = g_build_filename (default_dir, filename, NULL); - gdk_pixbuf_save (screenshot, filename, "png", NULL, NULL); + + savename = g_build_filename (default_dir, filename, NULL); + gdk_pixbuf_save (screenshot, savename, "png", NULL, NULL); + + g_free (savename); } g_free (filename); -- GitLab