[Kde-pim] Review Request: Bug 86302: Handle malformed multi-line mail headers

Oldrich Jedlicka oldium.pro at seznam.cz
Sun Jan 17 20:58:16 GMT 2010



> On 2010-01-16 12:46:21, Thomas McGuire wrote:
> > Oldrich, thank you for providing this patch, I'm especially happy that you created a version for KMime.
> > 
> > The patch still needs some corrections, then it can be committed. See below for the current problems the patch has:
> > 
> > With the current trunk, these modifications produce a test failure in kmime-kmime_message_test:
> > 
> > QFATAL : MessageTest::testHeaderFieldWithoutSpace() ASSERT: "i >= 0 && i < size()" in file include/QtCore/../../src/corelib/tools/qbytearray.h, line 395
> > FAIL!  : MessageTest::testHeaderFieldWithoutSpace() Received a fatal error.
> > 
> > Backtrace:
> > 
> > #5  0x00007ffff64bd377 in qt_assert (assertion=0x7ffff7bc0476 "i >= 0 && i < size()",
> >     file=0x7ffff7bc0410 "kde-qt/include/QtCore/../../src/corelib/tools/qbytearray.h", line=395) at global/qglobal.cpp:1975
> > #6  0x00007ffff7b8fc89 in QByteArray::at (this=0x7fffffffbe50, i=9) at kde-qt/include/QtCore/../../src/corelib/tools/qbytearray.h:395
> > #7  0x00007ffff7b8d90d in KMime::findHeaderLineEnd (src="X-Mailer:" = {...}, dataBegin=@0x7fffffffbde8, folded=0x7fffffffbdef)
> >     at kdepimlibs/kmime/kmime_util.cpp:426
> > #8  0x00007ffff7b9927e in KMime::HeaderParsing::extractFirstHeader (head="X-Mailer:" = {...}) at kdepimlibs/kmime/kmime_header_parsing.cpp:2064
> > #9  0x00007ffff7b993ae in KMime::HeaderParsing::parseHeaders (head="From:\nTo: heinz at test.de\nCc:moritz at test.de\nSubject: Test\nX-Mailer:" = {...})
> >     at kdepimlibs/kmime/kmime_header_parsing.cpp:2092
> > #10 0x00007ffff7ba5682 in KMime::Content::parse (this=0x7fffffffbf80) at kdepimlibs/kmime/kmime_content.cpp:180
> > #11 0x00007ffff7bbd389 in KMime::Message::parse (this=0x7fffffffbf80) at kdepimlibs/kmime/kmime_message.cpp:49
> > #12 0x0000000000405192 in MessageTest::testHeaderFieldWithoutSpace (this=0x7fffffffd540) at kdepimlibs/kmime/tests/kmime_message_test.cpp:157
> > 
> > Seems that the new function findHeaderLineEnd() doesn't like headers with an empty field, like "XMailer:" in this test, when they are at the end of a mail.
> > 
> > For what version of kdepimlibs did you write this patch? The test testHeaderFieldWithoutSpace() is relatively new.
> > 
> > Can you please correct the patch so that this test passes as well? If you don't have the right version for this, please tell me, and I'll see if I can fix this myself.
> > 
> > Also, please fix the compiler warnings that the patch produces, I have listed them below as inline comments.
> >

All problems fixed in the attached revision 2.

I've fixed the problem with the assert, but I wasn't successful with reproducing it here (I'm not able to see asserts, I'm not able to force `make test` to generate stack trace for asserts). Anyway, I'm almost sure that the same problem was there also before my patch.


- Oldrich


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.kde.org/r/2561/#review3721
-----------------------------------------------------------


On 2010-01-17 20:48:49, Oldrich Jedlicka wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviewboard.kde.org/r/2561/
> -----------------------------------------------------------
> 
> (Updated 2010-01-17 20:48:49)
> 
> 
> Review request for KDE PIM.
> 
> 
> Summary
> -------
> 
> Parse correctly malformed multi-line mail headers. When the next header line starts with =09/=20, it is apparently an encoded tab/space character that marks header continuation.
> 
> Fixes bug 86302 (kmime for new kmail).
> 
> 
> This addresses bug 86302.
>     https://bugs.kde.org/show_bug.cgi?id=86302
> 
> 
> Diffs
> -----
> 
>   /branches/work/akonadi-ports/kdepimlibs/kmime/tests/kmime_util_test.cpp 1075838 
>   /branches/work/akonadi-ports/kdepimlibs/kmime/kmime_util_p.h 1075838 
>   /branches/work/akonadi-ports/kdepimlibs/kmime/kmime_util.cpp 1075838 
>   /branches/work/akonadi-ports/kdepimlibs/kmime/kmime_header_parsing.cpp 1075838 
> 
> Diff: http://reviewboard.kde.org/r/2561/diff
> 
> 
> Testing
> -------
> 
> Updated tests in kmime/tests.
> 
> 
> Thanks,
> 
> Oldrich
> 
>

_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/



More information about the kde-pim mailing list