Patch: fix PGP/GPG signed messages parsing in tinymail
- From: José Dapena Paz <jdapena igalia com>
- To: tinymail-devel-list <tinymail-devel-list gnome org>
- Subject: Patch: fix PGP/GPG signed messages parsing in tinymail
- Date: Sun, 29 Mar 2009 23:23:39 +0200
Hi,
Here goes one of the historical issues we had in Tinymail: the strange
offset added on the mime parts of a PGP-signed message. With this patch,
the structure is properly created, and then, you'll get the expected
parts properly aligned.
Changelog entry:
* libtinymail-camel/camel-lite/camel/camel-mime-part-utils.c:
take into account the original substream bounds to calculate the new
substream bounds on creating new message structure (fixes parsing
of PGP signed messages)
--
José Dapena Paz <jdapena igalia com>
Igalia
diff --git a/ChangeLog b/ChangeLog
index 33b6c1e..9331fe1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2009-03-29 Jose Dapena Paz <jdapena igalia com>
+
+ * libtinymail-camel/camel-lite/camel/camel-mime-part-utils.c:
+ take into account the original substream bounds to calculate the new
+ substream bounds on creating new message structure (fixes parsing
+ of PGP signed messages)
+
2009-03-24 Jose Dapena Paz <jdapena igalia com>
* libtinymailui-gtk/tny-gtk-folder-list-store.[ch]: added
diff --git a/libtinymail-camel/camel-lite/camel/camel-mime-part-utils.c b/libtinymail-camel/camel-lite/camel/camel-mime-part-utils.c
index 3ec953e..04a4c54 100644
--- a/libtinymail-camel/camel-lite/camel/camel-mime-part-utils.c
+++ b/libtinymail-camel/camel-lite/camel/camel-mime-part-utils.c
@@ -90,9 +90,15 @@ simple_data_wrapper_construct_from_parser (CamelDataWrapper *dw, CamelMimeParser
if (buffer == NULL) {
end = camel_mime_parser_tell (mp);
- if (stream != NULL)
- stream = camel_seekable_substream_new ((CamelSeekableStream *) stream, start, end);
- else
+ if (stream != NULL) {
+ uint offset;
+ if (CAMEL_IS_SEEKABLE_SUBSTREAM (stream)) {
+ offset = ((CamelSeekableStream *)stream)->bound_start;
+ } else {
+ offset = 0;
+ }
+ stream = camel_seekable_substream_new ((CamelSeekableStream *) stream, start + offset, end + offset);
+ } else
stream = camel_stream_fs_new_with_fd_and_bounds (dup (fd), start, end);
} else {
stream = camel_stream_mem_new_with_byte_array (buffer);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]