2007-02-21 [colin] 2.7.2cvs60
authorColin Leroy <colin@colino.net>
Wed, 21 Feb 2007 17:24:13 +0000 (17:24 +0000)
committerColin Leroy <colin@colino.net>
Wed, 21 Feb 2007 17:24:13 +0000 (17:24 +0000)
* src/procmsg.c
* src/plugins/pgpcore/passphrase.c
Fix little memory leaks
* src/main.c
Fix false-positive leak at exit
* src/gtk/quicksearch.c
Fix potentially big leak in recursive
Quicksearch

ChangeLog
PATCHSETS
configure.ac
src/gtk/quicksearch.c
src/main.c
src/plugins/pgpcore/passphrase.c
src/procmsg.c

index 6b901a0..01f154f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2007-02-21 [colin]     2.7.2cvs60
+
+       * src/procmsg.c
+       * src/plugins/pgpcore/passphrase.c
+               Fix little memory leaks
+       * src/main.c
+               Fix false-positive leak at exit
+       * src/gtk/quicksearch.c
+               Fix potentially big leak in recursive
+               Quicksearch
+
 2007-02-21 [wwp]       2.7.2cvs59
 
        * src/summaryview.c
index 816d008..b494c5a 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.155.2.51 -r 1.155.2.52 src/Makefile.am;  cvs diff -u -r 1.115.2.136 -r 1.115.2.137 src/main.c;  cvs diff -u -r 1.83.2.101 -r 1.83.2.102 src/mimeview.c;  cvs diff -u -r 1.25.2.31 -r 1.25.2.32 src/stock_pixmap.c;  cvs diff -u -r 1.18.2.22 -r 1.18.2.23 src/stock_pixmap.h;  diff -u /dev/null src/pixmaps/mime_calendar.xpm;  diff -u /dev/null src/pixmaps/mime_pdf.xpm;  diff -u /dev/null src/pixmaps/mime_ps.xpm;  ) > 2.7.2cvs57.patchset
 ( cvs diff -u -r 1.155.2.52 -r 1.155.2.53 src/Makefile.am;  cvs diff -u -r 1.83.2.102 -r 1.83.2.103 src/mimeview.c;  cvs diff -u -r 1.25.2.32 -r 1.25.2.33 src/stock_pixmap.c;  cvs diff -u -r 1.18.2.23 -r 1.18.2.24 src/stock_pixmap.h;  diff -u /dev/null src/pixmaps/mime_pgpsig.xpm;  ) > 2.7.2cvs58.patchset
 ( cvs diff -u -r 1.395.2.284 -r 1.395.2.285 src/summaryview.c;  ) > 2.7.2cvs59.patchset
+( cvs diff -u -r 1.115.2.137 -r 1.115.2.138 src/main.c;  cvs diff -u -r 1.150.2.92 -r 1.150.2.93 src/procmsg.c;  cvs diff -u -r 1.1.2.62 -r 1.1.2.63 src/gtk/quicksearch.c;  cvs diff -u -r 1.1.2.23 -r 1.1.2.24 src/plugins/pgpcore/passphrase.c;  ) > 2.7.2cvs60.patchset
index d82ef4a..71d81ba 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=7
 MICRO_VERSION=2
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=59
+EXTRA_VERSION=60
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index a0c603a..4062b77 100644 (file)
@@ -1090,11 +1090,9 @@ static gboolean quicksearch_match_subfolder(QuickSearch *quicksearch,
                MsgInfo *msg = (MsgInfo *)cur->data;
                statusbar_progress_all(num++,total, interval);
                if (quicksearch_match(quicksearch, msg)) {
-                       procmsg_msginfo_free(msg);
                        result = TRUE;
                        break;
                }
-               procmsg_msginfo_free(msg);
                if (num % interval == 0)
                        GTK_EVENTS_FLUSH();
                if (!quicksearch_is_active(quicksearch))
@@ -1104,7 +1102,7 @@ static gboolean quicksearch_match_subfolder(QuickSearch *quicksearch,
        statusbar_progress_all(0,0,0);
        statusbar_pop_all();
 
-       g_slist_free(msglist);
+       procmsg_msg_list_free(msglist);
        return result;
 }
 
index 4d6e8f1..da48994 100644 (file)
@@ -1322,6 +1322,7 @@ void app_will_exit(GtkWidget *widget, gpointer data)
        }
 
        sock_cleanup();
+       summary_clear_list(mainwin->summaryview);
        if (folderview_get_selected_item(mainwin->folderview))
                folder_item_close(folderview_get_selected_item(mainwin->folderview));
        gtk_main_quit();
index 903c3cf..b6402e6 100644 (file)
@@ -357,6 +357,8 @@ gpgmegtk_passphrase_cb(void *opaque, const char *uid_hint,
     write(fd, pass, strlen(pass));
     write(fd, "\n", 1);
 #endif
+    g_free(pass);
+
     return GPG_ERR_NO_ERROR;
 }
 
index dca1f98..a5276c8 100644 (file)
@@ -665,8 +665,10 @@ static void procmsg_empty_trash(FolderItem *trash)
                GSList *cur;
                for (cur = mlist ; cur != NULL ; cur = cur->next) {
                        MsgInfo * msginfo = (MsgInfo *) cur->data;
-                       if (MSG_IS_LOCKED(msginfo->flags))
+                       if (MSG_IS_LOCKED(msginfo->flags)) {
+                               procmsg_msginfo_free(msginfo);
                                continue;
+                       }
                        if (msginfo->total_size != 0 && 
                            msginfo->size != (off_t)msginfo->total_size)
                                partial_mark_for_delete(msginfo);