2006-11-12 [colin] 2.6.0cvs37
authorColin Leroy <colin@colino.net>
Sun, 12 Nov 2006 18:33:29 +0000 (18:33 +0000)
committerColin Leroy <colin@colino.net>
Sun, 12 Nov 2006 18:33:29 +0000 (18:33 +0000)
* src/plugins/pgpinline/pgpinline.c
* src/plugins/pgpmime/pgpmime.c
Release GPG context at the latest
possible moment. Maybe fixes
bug 1057, 'crash on sending signed
message to a newsgroup'

ChangeLog
PATCHSETS
configure.ac
src/plugins/pgpinline/pgpinline.c
src/plugins/pgpmime/pgpmime.c

index 6064a4e820778e87db3717725a66369b41f28516..92f9407c7916be74f730f95c5a7b2c62bbe2c3e9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2006-11-12 [colin]     2.6.0cvs37
+
+       * src/plugins/pgpinline/pgpinline.c
+       * src/plugins/pgpmime/pgpmime.c
+               Release GPG context at the latest 
+               possible moment. Maybe fixes 
+               bug 1057, 'crash on sending signed 
+               message to a newsgroup'
+               
+
 2006-11-12 [colin]     2.6.0cvs36
 
        * src/plugins/pgpcore/sgpgme.c
index 0202f6705d2d4e53c89db28a39655545468cdbca..27adb368cb4609aab2c892057c4d4ce102592291 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.1.2.1 -r 1.1.2.2 doc/man/claws-mail.1;  cvs diff -u -r 1.10.2.26 -r 1.10.2.27 src/prefs_gtk.c;  cvs diff -u -r 1.1.4.1 -r 1.1.4.2 src/plugins/clamav/README;  cvs diff -u -r 1.3.2.2 -r 1.3.2.3 src/plugins/spamassassin/README;  cvs diff -u -r 1.14.2.42 -r 1.14.2.43 src/plugins/trayicon/trayicon.c;  cvs diff -u -r 1.30.2.11 -r 1.30.2.12 tools/README;  cvs diff -u -r 1.3.2.3 -r 1.3.2.4 tools/freshmeat_search.pl;  cvs diff -u -r 1.3.2.3 -r 1.3.2.4 tools/google_search.pl;  cvs diff -u -r 1.3.2.3 -r 1.3.2.4 tools/multiwebsearch.pl;  ) > 2.6.0cvs34.patchset
 ( cvs diff -u -r 1.382.2.327 -r 1.382.2.328 src/compose.c;  ) > 2.6.0cvs35.patchset
 ( cvs diff -u -r 1.1.2.34 -r 1.1.2.35 src/plugins/pgpcore/sgpgme.c;  ) > 2.6.0cvs36.patchset
+( cvs diff -u -r 1.1.2.20 -r 1.1.2.21 src/plugins/pgpinline/pgpinline.c;  cvs diff -u -r 1.1.2.40 -r 1.1.2.41 src/plugins/pgpmime/pgpmime.c;  ) > 2.6.0cvs37.patchset
index fc780ebef402a6df4f1d16031ab780f3a854e364..decb81e22d8a6dbf4a7b0f00a8c80c3a59f84673 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=6
 MICRO_VERSION=0
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=36
+EXTRA_VERSION=37
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index ae941606c91fb5bd090e8e7e22164726883b51bf..c7ae09380cdc30c74313af772d40f68e651a5d34 100644 (file)
@@ -279,6 +279,8 @@ static gint pgpinline_check_signature(MimeInfo *mimeinfo)
        gpgme_data_release(plain);
        gpgme_data_release(cipher);
        
+       gpgme_release(ctx);
+
        g_free(textdata);
        
        return 0;
@@ -579,14 +581,13 @@ static gboolean pgpinline_sign(MimeInfo *mimeinfo, PrefsAccount *account)
 
        sigcontent = gpgme_data_release_and_get_mem(gpgsig, &len);
        
-       gpgme_release(ctx);
-       
        if (sigcontent == NULL || len <= 0) {
                g_warning("gpgme_data_release_and_get_mem failed");
                privacy_set_error(_("Data signing failed, no contents."));
                gpgme_data_release(gpgtext);
                g_free(textstr);
                g_free(sigcontent);
+               gpgme_release(ctx);
                return FALSE;
        }
 
@@ -611,7 +612,8 @@ static gboolean pgpinline_sign(MimeInfo *mimeinfo, PrefsAccount *account)
         * chars
         */
        procmime_encode_content(msgcontent, ENC_BASE64);
-                       
+       gpgme_release(ctx);
+
        return TRUE;
 }
 
@@ -696,7 +698,6 @@ static gboolean pgpinline_encrypt(MimeInfo *mimeinfo, const gchar *encrypt_data)
 
        err = gpgme_op_encrypt(ctx, kset, GPGME_ENCRYPT_ALWAYS_TRUST, gpgtext, gpgenc);
 
-       gpgme_release(ctx);
        enccontent = gpgme_data_release_and_get_mem(gpgenc, &len);
 
        if (enccontent == NULL || len <= 0) {
@@ -704,6 +705,7 @@ static gboolean pgpinline_encrypt(MimeInfo *mimeinfo, const gchar *encrypt_data)
                privacy_set_error(_("Encryption failed, %s"), gpgme_strerror(err));
                gpgme_data_release(gpgtext);
                g_free(textstr);
+               gpgme_release(ctx);
                return FALSE;
        }
 
@@ -724,6 +726,7 @@ static gboolean pgpinline_encrypt(MimeInfo *mimeinfo, const gchar *encrypt_data)
        msgcontent->data.mem = g_strdup(tmp);
        msgcontent->content = MIMECONTENT_MEM;
        g_free(tmp);
+       gpgme_release(ctx);
 
        return TRUE;
 }
index 38f4e544cd71a45939e816c8ed7da52095ab779c..bccc0744f75de4c4d6109daf48419135d81922cf 100644 (file)
@@ -530,7 +530,6 @@ gboolean pgpmime_sign(MimeInfo *mimeinfo, PrefsAccount *account)
                return FALSE;
        }
 
-       gpgme_release(ctx);
        sigcontent = gpgme_data_release_and_get_mem(gpgsig, &len);
        gpgme_data_release(gpgtext);
        g_free(textstr);
@@ -560,6 +559,7 @@ gboolean pgpmime_sign(MimeInfo *mimeinfo, PrefsAccount *account)
        g_node_append(sigmultipart->node, newinfo->node);
 
        g_free(sigcontent);
+       gpgme_release(ctx);
 
        return TRUE;
 }
@@ -646,7 +646,6 @@ gboolean pgpmime_encrypt(MimeInfo *mimeinfo, const gchar *encrypt_data)
        
        err = gpgme_op_encrypt(ctx, kset, GPGME_ENCRYPT_ALWAYS_TRUST, gpgtext, gpgenc);
 
-       gpgme_release(ctx);
        enccontent = gpgme_data_release_and_get_mem(gpgenc, &len);
        gpgme_data_release(gpgtext);
        g_free(textstr);
@@ -654,6 +653,7 @@ gboolean pgpmime_encrypt(MimeInfo *mimeinfo, const gchar *encrypt_data)
        if (enccontent == NULL || len <= 0) {
                g_warning("gpgme_data_release_and_get_mem failed");
                privacy_set_error(_("Encryption failed, %s"), gpgme_strerror(err));
+               gpgme_release(ctx);
                return FALSE;
        }
 
@@ -679,6 +679,7 @@ gboolean pgpmime_encrypt(MimeInfo *mimeinfo, const gchar *encrypt_data)
        g_node_append(encmultipart->node, newinfo->node);
 
        g_free(enccontent);
+       gpgme_release(ctx);
 
        return TRUE;
 }