From a0c093ed244b8187e8f1eed40ed3598493468741 Mon Sep 17 00:00:00 2001 From: Jeffrey Stedfast Date: Thu, 27 Sep 2001 22:32:11 +0000 Subject: CRLF decode the stream before parsing it into a MIME part. This fixes bug 2001-09-27 Jeffrey Stedfast * camel-pgp-mime.c (camel_pgp_mime_part_decrypt): CRLF decode the stream before parsing it into a MIME part. This fixes bug #10521. * camel-store.c: Remove the old folder from the vTrash folder. svn path=/trunk/; revision=13199 --- camel/camel-pgp-mime.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'camel/camel-pgp-mime.c') diff --git a/camel/camel-pgp-mime.c b/camel/camel-pgp-mime.c index 149e1baf3b..fb17256528 100644 --- a/camel/camel-pgp-mime.c +++ b/camel/camel-pgp-mime.c @@ -31,11 +31,14 @@ #include "camel-mime-filter-crlf.h" #include "camel-stream-filter.h" #include "camel-stream-mem.h" +#include "camel-stream-fs.h" #include #include #include +#define PGPMIME_DEBUG + #define d(x) x /** rfc2015 stuff (aka PGP/MIME) *******************************/ @@ -495,6 +498,8 @@ camel_pgp_mime_part_decrypt (CamelPgpContext *context, CamelMimePart *mime_part, CamelMimePart *encrypted_part, *part; CamelContentType *mime_type; CamelStream *stream, *ciphertext; + CamelStreamFilter *filtered_stream; + CamelMimeFilter *crlf_filter; g_return_val_if_fail (mime_part != NULL, NULL); g_return_val_if_fail (CAMEL_IS_MIME_PART (mime_part), NULL); @@ -530,8 +535,17 @@ camel_pgp_mime_part_decrypt (CamelPgpContext *context, CamelMimePart *mime_part, /* construct the new decrypted mime part from the stream */ part = camel_mime_part_new (); - camel_data_wrapper_construct_from_stream (CAMEL_DATA_WRAPPER (part), stream); + + crlf_filter = camel_mime_filter_crlf_new (CAMEL_MIME_FILTER_CRLF_DECODE, + CAMEL_MIME_FILTER_CRLF_MODE_CRLF_ONLY); + filtered_stream = camel_stream_filter_new_with_stream (stream); camel_object_unref (CAMEL_OBJECT (stream)); + camel_stream_filter_add (filtered_stream, CAMEL_MIME_FILTER (crlf_filter)); + camel_object_unref (CAMEL_OBJECT (crlf_filter)); + + camel_data_wrapper_construct_from_stream (CAMEL_DATA_WRAPPER (part), CAMEL_STREAM (filtered_stream)); + + camel_object_unref (CAMEL_OBJECT (filtered_stream)); return part; } -- cgit v1.2.3