2007-02-08 [colin] 2.7.2cvs33
authorColin Leroy <colin@colino.net>
Thu, 8 Feb 2007 22:59:51 +0000 (22:59 +0000)
committerColin Leroy <colin@colino.net>
Thu, 8 Feb 2007 22:59:51 +0000 (22:59 +0000)
* src/plugins/pgpinline/pgpinline.c
Fix bug 1110, 'pgpmime fails to process
encapsulated openpgp mime (rfc 3156, 6.1
-> rfc1847)'
It was due to an interaction between PGP/Mime
and PGP/Inline plugin.

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

index 4ee0de8f7c7ff38b990134bb5d7ac431bc504e60..e54d458ff92ae02d1c57c7b2fc31566d82225125 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2007-02-08 [colin]     2.7.2cvs33
+
+       * src/plugins/pgpinline/pgpinline.c
+               Fix bug 1110, 'pgpmime fails to process 
+               encapsulated openpgp mime (rfc 3156, 6.1 
+               -> rfc1847)'
+               It was due to an interaction between PGP/Mime
+               and PGP/Inline plugin. 
+
 2007-02-08 [colin]     2.7.2cvs32
 
        * src/inc.c
index 177d9ffa404aec6bee4993ab9f1caa18437a586e..f42b7a09a0d3bc7422f3565c86e05bd28c02dc05 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.3.2.15 -r 1.3.2.16 src/ldapquery.c;  ) > 2.7.2cvs30.patchset
 ( cvs diff -u -r 1.105.2.84 -r 1.105.2.85 src/prefs_account.c;  ) > 2.7.2cvs31.patchset
 ( cvs diff -u -r 1.149.2.64 -r 1.149.2.65 src/inc.c;  cvs diff -u -r 1.28.2.32 -r 1.28.2.33 src/mbox.c;  cvs diff -u -r 1.3.2.8 -r 1.3.2.9 src/mbox.h;  ) > 2.7.2cvs32.patchset
+( cvs diff -u -r 1.1.2.26 -r 1.1.2.27 src/plugins/pgpinline/pgpinline.c;  ) > 2.7.2cvs33.patchset
index d78e196fd864f7af27d05dcfa4351ec0c014f3d5..42ac3535f7da5e4b9c93796aa7bb5c1147cfd68f 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=7
 MICRO_VERSION=2
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=32
+EXTRA_VERSION=33
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index c21a52cb78139cb7a2211a5ee01936b3c3dd810d..ef674fa6654bff019cff2028aa32e795e0590bdc 100644 (file)
@@ -119,7 +119,7 @@ static gchar *fp_read_noconv(FILE *fp)
 static gchar *get_part_as_string(MimeInfo *mimeinfo)
 {
        gchar *textdata = NULL;
-
+       gchar *real_data = NULL;
        g_return_val_if_fail(mimeinfo != NULL, 0);
        procmime_decode_content(mimeinfo);
        if (mimeinfo->content == MIMECONTENT_MEM)
@@ -157,7 +157,15 @@ static gchar *get_part_as_string(MimeInfo *mimeinfo)
                        textdata = tmp;
                }
        }
-
+       if (textdata && mimeinfo->offset && 
+           mimeinfo->offset+ mimeinfo->length < strlen(textdata)) {
+               real_data = g_strdup(textdata + mimeinfo->offset);
+               real_data[mimeinfo->length] = '\0';
+               g_free(textdata);
+               textdata = real_data;
+       } else if (textdata && mimeinfo->offset) {
+               debug_print("got data shorter than what it should be\n");
+       }
        return textdata;        
 }
 
@@ -353,6 +361,7 @@ static gboolean pgpinline_is_encrypted(MimeInfo *mimeinfo)
        }
 
        g_free(textdata);
+
        return TRUE;
 }