GNOME Bugzilla – Bug 640829
Can drop text/plain message lines in message preview
Last modified: 2011-03-17 11:43:16 UTC
Created attachment 179522 [details] email that had the missing line A patch sent to me for review was modified by Evolution causing me to get into an argument with the author, which turned out that he was correct, because I was looking at a version modified by Evolution. Here's what the modified part of the patch looked like in Evolution: +static void search_within_subtree(struct rb_node *n, struct inode *inode, + struct list_head *tmp_list) +{ + struct rb_node *p; + + if (p) + __search_within_subtree(p, inode, tmp_list); + Where 'p' is not initialized. Doing a Ctrl^u, it shows the real content: +static void search_within_subtree(struct rb_node *n, struct inode *inode, + struct list_head *tmp_list) +{ + struct rb_node *p; + + p = n->rb_left; + if (p) + __search_within_subtree(p, inode, tmp_list); were 'p' is initialized. This affected myself as well as another patch reviewer. Those using mutt, were not affected. The patch is here: https://lkml.org/lkml/2010/12/16/74 And my raw email is attached.
Is that reproducible?
Yes. Here's some more information. I access my email through IMAP
bah! Somehow my message was committed while I was typing it. As I was saying... I access my email through IMAP from another machine in my LAN that is running dovecot. I just tried appending the bad email in another folder and read it again, and it did the same thing. I accessed the same email from my Android phone using the same dovecot server and it views it fine. The Help->About shows this version is 2.30.3 (I use debian testing).
Confirming, I can reproduce it too, with your test message, on actual git master (~2.91.90). Thanks for the data.
Created attachment 181449 [details] [review] evo patch for evolution; I found two bugs in the code, one in evolution, when the line delimiter (\n) was the last letter in the buffer then it was not restored properly in the inline filter, so it made "corrupt" backup data (instead of "+\n" string was backed up "+\0" string).
Created attachment 181450 [details] [review] eds patch for evolution-data-server; The second bug, in eds, when the mime-filter had backed up some data, which were small enough, then the restoration of them didn't happen in a dedicated buffer, but in the 'in' buffer, which means the memory stream or something used to decode the mime part in. Valgrind doesn't catch such things, because one is still in buffer boundaries. This patch makes sure the right buffer is used for backed up data from a mime-filter.
Created commit b0dfd4a in eds master (2.91.91+) Created commit 065755c in evo master (2.91.91+)
Created attachment 183621 [details] [review] EDS 2.32 patch We should fix this in 2.32 too, since that's our current stable release ... and it's not even capable of displaying a text/plain email without corrupting it, which is kind of embarrassing. The evo patch backports cleanly; the eds patch needs to be massaged a little to apply to 2.32 (yay for whitespace cleanups :)