2005-12-11 [paul] 1.9.100cvs82
authorPaul Mangan <paul@claws-mail.org>
Sun, 11 Dec 2005 10:03:46 +0000 (10:03 +0000)
committerPaul Mangan <paul@claws-mail.org>
Sun, 11 Dec 2005 10:03:46 +0000 (10:03 +0000)
* src/gtk/filesel.c
fix attach_load_dir crasher (double free)

ChangeLog
PATCHSETS
configure.ac
src/gtk/filesel.c

index b07e16e630bb5bd7046bad2c3e826de0c2ecf4d5..a02604a8148de0a42b2d6e58194222cc033ec29f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-12-11 [paul]      1.9.100cvs82
+
+       * src/gtk/filesel.c
+               fix attach_load_dir crasher (double free)
+
 2005-12-09 [paul]      1.9.100cvs81
 
        * po/POTFILES.in
index a58e9d68dd9e7031f9f5cc5aeb6902060376a91f..ab29d681097ecb28dc25324e51514429504a3a49 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.1.2.13 -r 1.1.2.14 src/plugins/pgpcore/sgpgme.c;  ) > 1.9.100cvs79.patchset
 ( cvs diff -u -r 1.1.2.7 -r 1.1.2.8 src/plugins/pgpcore/passphrase.c;  ) > 1.9.100cvs80.patchset
 ( cvs diff -u -r 1.53.2.15 -r 1.53.2.16 po/POTFILES.in;  cvs diff -u -r 1.274.2.80 -r 1.274.2.81 src/mainwindow.c;  cvs diff -u -r 1.11.2.4 -r 1.11.2.5 src/manual.c;  cvs diff -u -r 1.20.2.6 -r 1.20.2.7 src/gtk/Makefile.am;  diff -u /dev/null src/gtk/icon_legend.c;  diff -u /dev/null src/gtk/icon_legend.h;  ) > 1.9.100cvs81.patchset
+( cvs diff -u -r 1.2.2.17 -r 1.2.2.18 src/gtk/filesel.c;  ) > 1.9.100cvs82.patchset
index 48c22f0faf9d4e40bb2fccba347555f5651b0dbf..06de46435a48d543d321c963b2cf00a37c94c133 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=9
 MICRO_VERSION=100
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=81
+EXTRA_VERSION=82
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index 32bc4c648898c9b0ba0cf928b3a100b2658a9b3b..1624b45552fd56cfae5c6cbbb7e3bc8e63ca34c9 100644 (file)
@@ -49,7 +49,6 @@ static GList *filesel_create(const gchar *title, const gchar *path,
 {
        GSList *slist = NULL, *slist_orig = NULL;
        GList *list = NULL;
-       gchar *last_selected_dir = prefs_common.attach_load_dir;
 
        gint action = (open == TRUE) ? 
                        (folder_mode == TRUE ? GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER:
@@ -92,10 +91,10 @@ static GList *filesel_create(const gchar *title, const gchar *path,
                        gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(chooser), filename);
                free(realpath);
        } else {
-               if (!last_selected_dir)
-                       last_selected_dir = g_strdup_printf("%s%c", get_home_dir(), G_DIR_SEPARATOR);
+               if (!prefs_common.attach_load_dir)
+                       prefs_common.attach_load_dir = g_strdup_printf("%s%c", get_home_dir(), G_DIR_SEPARATOR);
 
-               gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(chooser), last_selected_dir);
+               gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(chooser), prefs_common.attach_load_dir);
        }
 
        if (gtk_dialog_run (GTK_DIALOG (chooser)) == GTK_RESPONSE_ACCEPT) 
@@ -108,17 +107,14 @@ static GList *filesel_create(const gchar *title, const gchar *path,
        
        if (slist) {
                gchar *tmp = strdup(slist->data);
-               if (last_selected_dir)
-                       g_free(last_selected_dir);
-               
-               if (strrchr(tmp, G_DIR_SEPARATOR))
-                       *(strrchr(tmp, G_DIR_SEPARATOR)+1) = '\0';
-               last_selected_dir = g_strdup(tmp);
 
                if (prefs_common.attach_load_dir)
                        g_free(prefs_common.attach_load_dir);
+               
+               if (strrchr(tmp, G_DIR_SEPARATOR))
+                       *(strrchr(tmp, G_DIR_SEPARATOR)+1) = '\0';
 
-               prefs_common.attach_load_dir = last_selected_dir;
+               prefs_common.attach_load_dir = g_strdup(tmp);
 
                g_free(tmp);
        }