2006-11-11 [colin] 2.6.0cvs31
authorColin Leroy <colin@colino.net>
Sat, 11 Nov 2006 12:23:36 +0000 (12:23 +0000)
committerColin Leroy <colin@colino.net>
Sat, 11 Nov 2006 12:23:36 +0000 (12:23 +0000)
* src/plugins/pgpinline/pgpinline.c
* src/plugins/pgpmime/pgpmime.c
Check success after calling gpgme_new
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 d00614af63703e57951e704b5d506c8a9286ec2f..c3ce6e5d5fbb43cd8ec9d21744f962cb59a694eb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2006-11-11 [colin]     2.6.0cvs31
+
+       * src/plugins/pgpinline/pgpinline.c
+       * src/plugins/pgpmime/pgpmime.c
+               Check success after calling gpgme_new
+               Maybe fixes bug 1057, 'crash on sending 
+               signed message to a newsgroup'
+
 2006-11-11 [colin]     2.6.0cvs30
 
        * src/undo.c
index 6de0f0c856fb8cadbd670ea37d2e41056634efb9..766245d30682d7028d1569d17d36af6869a5d4a6 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.382.2.326 -r 1.382.2.327 src/compose.c;  cvs diff -u -r 1.50.2.28 -r 1.50.2.29 src/compose.h;  ) > 2.6.0cvs28.patchset
 ( cvs diff -u -r 1.274.2.155 -r 1.274.2.156 src/mainwindow.c;  cvs diff -u -r 1.1.2.12 -r 1.1.2.13 src/plugins/bogofilter/bogofilter.c;  cvs diff -u -r 1.1.2.3 -r 1.1.2.4 src/plugins/bogofilter/bogofilter.h;  cvs diff -u -r 1.1.2.6 -r 1.1.2.7 src/plugins/bogofilter/bogofilter_gtk.c;  ) > 2.6.0cvs29.patchset
 ( cvs diff -u -r 1.13.2.11 -r 1.13.2.12 src/undo.c;  ) > 2.6.0cvs30.patchset
+( cvs diff -u -r 1.1.2.18 -r 1.1.2.19 src/plugins/pgpinline/pgpinline.c;  cvs diff -u -r 1.1.2.39 -r 1.1.2.40 src/plugins/pgpmime/pgpmime.c;  ) > 2.6.0cvs31.patchset
index 13982b60f6659da2e2b254eea2ab155f7b7d3522..a7e23cd54cabe9d7a8f693942d84ecdf0467a12f 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=6
 MICRO_VERSION=0
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=30
+EXTRA_VERSION=31
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index c66f53d2f21535e0bf6509d73dc0f12c669173f1..51f372ec23b642987d6876e12382683f1e18dc6f 100644 (file)
@@ -63,13 +63,17 @@ static gint pgpinline_check_signature(MimeInfo *mimeinfo);
 static PrivacyDataPGP *pgpinline_new_privacydata()
 {
        PrivacyDataPGP *data;
+       gpgme_error_t err;
 
        data = g_new0(PrivacyDataPGP, 1);
        data->data.system = &pgpinline_system;
        data->done_sigtest = FALSE;
        data->is_signed = FALSE;
        data->sigstatus = NULL;
-       gpgme_new(&data->ctx);
+       if ((err = gpgme_new(&data->ctx)) != GPG_ERR_NO_ERROR) {
+               debug_print(("Couldn't initialize GPG context, %s"), gpgme_strerror(err));
+               return NULL;
+       }
        
        return data;
 }
@@ -219,7 +223,8 @@ static gint pgpinline_check_signature(MimeInfo *mimeinfo)
        gchar *textdata = NULL, *tmp = NULL;
        gpgme_data_t plain = NULL, cipher = NULL;
        gpgme_ctx_t ctx;
-       
+       gpgme_error_t err;
+
        g_return_val_if_fail(mimeinfo != NULL, 0);
 
        if (procmime_mimeinfo_parent(mimeinfo) == NULL)
@@ -258,7 +263,11 @@ static gint pgpinline_check_signature(MimeInfo *mimeinfo)
        textdata = g_strdup(tmp);
        g_free(tmp);
        
-       gpgme_new(&ctx);
+       if ((err = gpgme_new(&data->ctx)) != GPG_ERR_NO_ERROR) {
+               debug_print(("Couldn't initialize GPG context, %s"), gpgme_strerror(err));
+               privacy_set_error(_("Couldn't initialize GPG context, %s"), gpgme_strerror(err));
+               return 0;
+       }
        gpgme_set_textmode(ctx, 1);
        gpgme_set_armor(ctx, 1);
        
@@ -510,7 +519,11 @@ static gboolean pgpinline_sign(MimeInfo *mimeinfo, PrefsAccount *account)
                
        gpgme_data_new_from_mem(&gpgtext, textstr, strlen(textstr), 0);
        gpgme_data_new(&gpgsig);
-       gpgme_new(&ctx);
+       if ((err = gpgme_new(&ctx)) != GPG_ERR_NO_ERROR) {
+               debug_print(("Couldn't initialize GPG context, %s"), gpgme_strerror(err));
+               privacy_set_error(_("Couldn't initialize GPG context, %s"), gpgme_strerror(err));
+               return FALSE;
+       }
        gpgme_set_textmode(ctx, 1);
        gpgme_set_armor(ctx, 1);
 
@@ -627,7 +640,11 @@ static gboolean pgpinline_encrypt(MimeInfo *mimeinfo, const gchar *encrypt_data)
        
        kset = g_malloc(sizeof(gpgme_key_t)*(i+1));
        memset(kset, 0, sizeof(gpgme_key_t)*(i+1));
-       gpgme_new(&ctx);
+       if ((err = gpgme_new(&ctx)) != GPG_ERR_NO_ERROR) {
+               debug_print(("Couldn't initialize GPG context, %s"), gpgme_strerror(err));
+               privacy_set_error(_("Couldn't initialize GPG context, %s"), gpgme_strerror(err));
+               return FALSE;
+       }
        i = 0;
        while (fprs[i] && strlen(fprs[i])) {
                gpgme_key_t key;
@@ -670,7 +687,11 @@ static gboolean pgpinline_encrypt(MimeInfo *mimeinfo, const gchar *encrypt_data)
        /* encrypt data */
        gpgme_data_new_from_mem(&gpgtext, textstr, strlen(textstr), 0);
        gpgme_data_new(&gpgenc);
-       gpgme_new(&ctx);
+       if ((err = gpgme_new(&ctx)) != GPG_ERR_NO_ERROR) {
+               debug_print(("Couldn't initialize GPG context, %s"), gpgme_strerror(err));
+               privacy_set_error(_("Couldn't initialize GPG context, %s"), gpgme_strerror(err));
+               return FALSE;
+       }
        gpgme_set_armor(ctx, 1);
 
        err = gpgme_op_encrypt(ctx, kset, GPGME_ENCRYPT_ALWAYS_TRUST, gpgtext, gpgenc);
index 67628d06701f6822099bd766482d51efe1b48d4a..38f4e544cd71a45939e816c8ed7da52095ab779c 100644 (file)
@@ -61,13 +61,17 @@ static gint pgpmime_check_signature(MimeInfo *mimeinfo);
 static PrivacyDataPGP *pgpmime_new_privacydata()
 {
        PrivacyDataPGP *data;
+       gpgme_error_t err;
 
        data = g_new0(PrivacyDataPGP, 1);
        data->data.system = &pgpmime_system;
        data->done_sigtest = FALSE;
        data->is_signed = FALSE;
        data->sigstatus = NULL;
-       gpgme_new(&data->ctx);
+       if ((err = gpgme_new(&data->ctx)) != GPG_ERR_NO_ERROR) {
+               g_warning(_("Couldn't initialize GPG context, %s"), gpgme_strerror(err));
+               return NULL;
+       }
        
        return data;
 }
@@ -172,7 +176,12 @@ static gint pgpmime_check_signature(MimeInfo *mimeinfo)
        g_return_val_if_fail(mimeinfo != NULL, -1);
        g_return_val_if_fail(mimeinfo->privacy != NULL, -1);
        data = (PrivacyDataPGP *) mimeinfo->privacy;
-       gpgme_new(&data->ctx);
+       if ((err = gpgme_new(&data->ctx)) != GPG_ERR_NO_ERROR) {
+               debug_print(("Couldn't initialize GPG context, %s"), gpgme_strerror(err));
+               privacy_set_error(_("Couldn't initialize GPG context, %s"), gpgme_strerror(err));
+               return 0;
+       }
+
        
        debug_print("Checking PGP/MIME signature\n");
 
@@ -307,7 +316,8 @@ static MimeInfo *pgpmime_decrypt(MimeInfo *mimeinfo)
        gpgme_error_t err;
 
        if ((err = gpgme_new(&ctx)) != GPG_ERR_NO_ERROR) {
-       privacy_set_error(_("Couldn't initialize GPG context, %s"), gpgme_strerror(err));
+               debug_print(("Couldn't initialize GPG context, %s"), gpgme_strerror(err));
+               privacy_set_error(_("Couldn't initialize GPG context, %s"), gpgme_strerror(err));
                return NULL;
        }
        
@@ -453,7 +463,11 @@ gboolean pgpmime_sign(MimeInfo *mimeinfo, PrefsAccount *account)
 
        gpgme_data_new_from_mem(&gpgtext, textstr, strlen(textstr), 0);
        gpgme_data_new(&gpgsig);
-       gpgme_new(&ctx);
+       if ((err = gpgme_new(&ctx)) != GPG_ERR_NO_ERROR) {
+               debug_print(("Couldn't initialize GPG context, %s"), gpgme_strerror(err));
+               privacy_set_error(_("Couldn't initialize GPG context, %s"), gpgme_strerror(err));
+               return FALSE;
+       }
        gpgme_set_textmode(ctx, 1);
        gpgme_set_armor(ctx, 1);
        gpgme_signers_clear (ctx);
@@ -574,7 +588,11 @@ gboolean pgpmime_encrypt(MimeInfo *mimeinfo, const gchar *encrypt_data)
        
        kset = g_malloc(sizeof(gpgme_key_t)*(i+1));
        memset(kset, 0, sizeof(gpgme_key_t)*(i+1));
-       gpgme_new(&ctx);
+       if ((err = gpgme_new(&ctx)) != GPG_ERR_NO_ERROR) {
+               debug_print(("Couldn't initialize GPG context, %s"), gpgme_strerror(err));
+               privacy_set_error(_("Couldn't initialize GPG context, %s"), gpgme_strerror(err));
+               return FALSE;
+       }
        i = 0;
        while (fprs[i] && strlen(fprs[i])) {
                gpgme_key_t key;