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 b07e16e..a02604a 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
 2005-12-09 [paul]      1.9.100cvs81
 
        * po/POTFILES.in
index a58e9d6..ab29d68 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.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 48c22f0..06de464 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=9
 MICRO_VERSION=100
 INTERFACE_AGE=0
 BINARY_AGE=0
 MICRO_VERSION=100
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=81
+EXTRA_VERSION=82
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index 32bc4c6..1624b45 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;
 {
        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:
 
        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 {
                        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) 
        }
 
        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 (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 (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);
        }
 
                g_free(tmp);
        }