Bug 177946 - kmail crashes when trying to view a mail containing an iCal event
Summary: kmail crashes when trying to view a mail containing an iCal event
Status: RESOLVED FIXED
Alias: None
Product: kdepimlibs
Classification: Applications
Component: kcal (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: kdepim bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-12-17 01:14 UTC by Marius Orcsik
Modified: 2008-12-18 02:30 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Google calendar generated iCal invitation (9.65 KB, text/plain)
2008-12-17 02:14 UTC, Marius Orcsik
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Marius Orcsik 2008-12-17 01:14:06 UTC
Version:            (using Devel)
OS:                Linux
Installed from:    Compiled sources

Kmail crashes when trying to view invitations to iCal events. 
Also right clicking on the email crashes Kmail.

So far I don't know if this is a duplicate of bug 127095[1], but I doubt it since it's marked as resolved and it's from 2006.

[1] https://bugs.kde.org/show_bug.cgi?id=127095

The invitation that triggered the crash was generated using the Calendar application from Kontact:

                                                                                                                                                                                                                                                               
Return-Path: <m****k@gmail.com>
Received: from petru.localnet ([89.****])
        by mx.google.com with ESMTPS id s11sm8743829mue.12.2008.12.16.15.51.22
        (version=TLSv1/SSLv3 cipher=RC4-MD5);
        Tue, 16 Dec 2008 15:51:23 -0800 (PST)
From: M***k <m****k@gmail.com>
To: h****n@gmail.com
Subject: V****u's birthday
Date: Wed, 17 Dec 2008 00:51:07 +0100
User-Agent: KMail/1.10.92 (Linux/2.6.27-ARCH; KDE/4.1.85; x86_64; svn-897422; 2008-12-16)
MIME-Version: 1.0
Content-Type: multipart/signed;
  boundary="nextPart2178845.KMk0HBDNWm";
  protocol="application/pgp-signature";
  micalg=pgp-sha1
Content-Transfer-Encoding: 7bit
Message-Id: <200812170051.07725.m****k@gmail.com>

--nextPart2178845.KMk0HBDNWm
Content-Type: multipart/mixed;
  boundary="Boundary-01=_r7DSJiRCegQKIaz"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

--Boundary-01=_r7DSJiRCegQKIaz
Content-Type: text/plain;
  charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Summary:=20
V***u's=20
birthday
Start Date:=20
21 10 1980
Recurs:=20
Yearly=20
Same=20
Month
=46requency:=20
1
Repeats=20
forever


--Boundary-01=_r7DSJiRCegQKIaz
Content-Type: text/calendar;
  charset="utf-8";
  name="cal.ics";
  method="request"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment

BEGIN:VCALENDAR
PRODID:-//K Desktop Environment//NONSGML libkcal 3.5//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
DTSTAMP:20081216T235107Z
X-KDE-KABC-BIRTHDAY:YES
X-KDE-KABC-EMAIL-1:V****u <b****n@gmail.com>
X-KDE-KABC-NAME-1:V****u
X-KDE-KABC-UID-1:f6yoUvGXTD
CREATED:20081216T235022Z
UID:f6yoUvGXTD_KABC_Birthday
LAST-MODIFIED:20081216T235022Z
SUMMARY:V****u's birthday
CATEGORIES:Birthday
RRULE:FREQ=YEARLY
DTSTART;VALUE=DATE:19801021
DTEND;VALUE=DATE:19801022
TRANSP:TRANSPARENT
BEGIN:VALARM
ACTION:
TRIGGER;VALUE=DURATION:PT0S
END:VALARM
END:VEVENT
END:VCALENDAR

--Boundary-01=_r7DSJiRCegQKIaz--

--nextPart2178845.KMk0HBDNWm
Content-Type: application/pgp-signature; name=signature.asc 
Content-Description: This is a digitally signed message part.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

aEYEABECAAYFAklIPusACgkQTLzkRAHX5CgRDQCeK8RaGm4U159YnQ6UuFy/V3Ed
M1MAn1pz64b0iuX2cG94KVsK2f6liINi
=cVg1
-----END PGP SIGNATURE-----

--nextPart2178845.KMk0HBDNWm--
Comment 1 Christophe Marin 2008-12-17 01:19:49 UTC
Can you provide a backtrace and mention which svn revision you're using ? 
Comment 2 Marius Orcsik 2008-12-17 02:14:24 UTC
Created attachment 29386 [details]
Google calendar generated iCal invitation
Comment 3 Marius Orcsik 2008-12-17 02:15:19 UTC
Comment on attachment 29386 [details]
Google calendar generated iCal invitation

Sorry, I can't provide the backtrace - I'm using some binaries without debug symbols.

The revision is 897422, also I didn't mention but I'm running x86_64.
Another observation: I have no crash viewing an invitation generated by Google calendar.
Comment 4 Christophe Marin 2008-12-17 12:16:37 UTC
We'd really appreciate a backtrace with debug symbols.

A similar issue has been fixed a few weeks ago (see bug 175345).
Comment 5 Marius Orcsik 2008-12-17 13:51:01 UTC
I build the kdepimlibs and kdepim with debug symbols, but not Qt and the rest of dependencies. Here's the backtrace:

Application: Kontact (kontact), signal SIGABRT
0x00007f4586bff001 in nanosleep () from /lib/libc.so.6
[Current thread is 0 (LWP 11919)]

Thread 3 (Thread 0x7f45707be950 (LWP 11929)):
#0  0x00007f45885f4fed in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f458886ff67 in QWaitCondition::wait () from /usr/lib/libQtCore.so.4
#2  0x00007f4588867679 in ?? () from /usr/lib/libQtCore.so.4
#3  0x00007f458886f1f9 in ?? () from /usr/lib/libQtCore.so.4
#4  0x00007f45885f0fc7 in start_thread () from /lib/libpthread.so.0
#5  0x00007f4586c2f5dd in clone () from /lib/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f456fdb7950 (LWP 11932)):
#0  0x00007f45885f4fed in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f458886ff67 in QWaitCondition::wait () from /usr/lib/libQtCore.so.4
#2  0x00007f4588867679 in ?? () from /usr/lib/libQtCore.so.4
#3  0x00007f458886f1f9 in ?? () from /usr/lib/libQtCore.so.4
#4  0x00007f45885f0fc7 in start_thread () from /lib/libpthread.so.0
#5  0x00007f4586c2f5dd in clone () from /lib/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f458ce79750 (LWP 11919)):
[KCrash Handler]
#5  0x00007f4586b920c5 in raise () from /lib/libc.so.6
#6  0x00007f4586b935e3 in abort () from /lib/libc.so.6
#7  0x00007f4588868525 in qt_message_output () from /usr/lib/libQtCore.so.4
#8  0x00007f4588868647 in qFatal () from /usr/lib/libQtCore.so.4
#9  0x00007f458affe817 in QList<int>::operator[] () from /usr/lib/libkcal.so.4
#10 0x00007f458afef4bd in KCal::IncidenceFormatter::recurrenceString () from /usr/lib/libkcal.so.4
#11 0x00007f458aff5533 in invitationDetailsEvent () from /usr/lib/libkcal.so.4
#12 0x00007f458afff4b5 in KCal::IncidenceFormatter::InvitationBodyVisitor::visit () from /usr/lib/libkcal.so.4
#13 0x00007f458afeff54 in formatICalInvitationHelper () from /usr/lib/libkcal.so.4
#14 0x00007f458aff0bde in KCal::IncidenceFormatter::formatICalInvitationNoHtml () from /usr/lib/libkcal.so.4
#15 0x00007f456e57485d in (anonymous namespace)::Formatter::format () from /usr/lib/kde4/kmail_bodypartformatter_text_calendar.so
#16 0x00007f4575756a3e in KMail::ObjectTreeParser::parseObjectTree () from /usr/lib/libkmailprivate.so.4
#17 0x00007f4575757508 in KMail::ObjectTreeParser::stdChildHandling () from /usr/lib/libkmailprivate.so.4
#18 0x00007f4575757864 in KMail::ObjectTreeParser::processMultiPartMixedSubtype () from /usr/lib/libkmailprivate.so.4
#19 0x00007f4575756e30 in KMail::ObjectTreeParser::parseObjectTree () from /usr/lib/libkmailprivate.so.4
#20 0x00007f457575c155 in KMail::ObjectTreeParser::writeOpaqueOrMultipartSignedData () from /usr/lib/libkmailprivate.so.4
#21 0x00007f4575760a92 in KMail::ObjectTreeParser::processMultiPartSignedSubtype () from /usr/lib/libkmailprivate.so.4
#22 0x00007f4575756e30 in KMail::ObjectTreeParser::parseObjectTree () from /usr/lib/libkmailprivate.so.4
#23 0x00007f45755c968f in KMReaderWin::parseMsg () from /usr/lib/libkmailprivate.so.4
#24 0x00007f45755b793f in KMReaderWin::displayMessage () from /usr/lib/libkmailprivate.so.4
#25 0x00007f45755b7b35 in KMReaderWin::updateReaderWin () from /usr/lib/libkmailprivate.so.4
#26 0x00007f45755c3bc5 in KMReaderWin::setMsg () from /usr/lib/libkmailprivate.so.4
#27 0x00007f45755c562d in KMReaderWin::slotMessageArrived () from /usr/lib/libkmailprivate.so.4
#28 0x00007f45755c58ec in KMReaderWin::qt_metacall () from /usr/lib/libkmailprivate.so.4
#29 0x00007f45889521f0 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#30 0x00007f45757ca67f in KMail::FolderJob::messageRetrieved () from /usr/lib/libkmailprivate.so.4
#31 0x00007f45757d7688 in KMail::ImapJob::slotGetMessageResult () from /usr/lib/libkmailprivate.so.4
#32 0x00007f45757dabe7 in KMail::ImapJob::qt_metacall () from /usr/lib/libkmailprivate.so.4
#33 0x00007f45889521f0 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#34 0x00007f4588f57a92 in KJob::result () from /usr/lib/libkdecore.so.5
#35 0x00007f4588f57e0f in KJob::emitResult () from /usr/lib/libkdecore.so.5
#36 0x00007f4589bf7c50 in KIO::SimpleJob::slotFinished () from /usr/lib/libkio.so.5
#37 0x00007f4589bf8e73 in KIO::TransferJob::slotFinished () from /usr/lib/libkio.so.5
#38 0x00007f4589bf9eb5 in KIO::TransferJob::qt_metacall () from /usr/lib/libkio.so.5
#39 0x00007f45889521f0 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#40 0x00007f4589ca18d1 in KIO::SlaveInterface::dispatch () from /usr/lib/libkio.so.5
#41 0x00007f4589c9f4f2 in KIO::SlaveInterface::dispatch () from /usr/lib/libkio.so.5
#42 0x00007f4589c929de in KIO::Slave::gotInput () from /usr/lib/libkio.so.5
#43 0x00007f4589c92ce8 in KIO::Slave::qt_metacall () from /usr/lib/libkio.so.5
#44 0x00007f45889521f0 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#45 0x00007f4589bca6a1 in KIO::ConnectionPrivate::dequeue () from /usr/lib/libkio.so.5
#46 0x00007f4589bcad4a in KIO::Connection::qt_metacall () from /usr/lib/libkio.so.5
#47 0x00007f458894e48e in QObject::event () from /usr/lib/libQtCore.so.4
#48 0x00007f45878236bd in QApplicationPrivate::notify_helper () from /usr/lib/libQtGui.so.4
#49 0x00007f4587829a4a in QApplication::notify () from /usr/lib/libQtGui.so.4
#50 0x00007f458972522b in KApplication::notify () from /usr/lib/libkdeui.so.5
#51 0x00007f45889408c1 in QCoreApplication::notifyInternal () from /usr/lib/libQtCore.so.4
#52 0x00007f45889412a8 in QCoreApplicationPrivate::sendPostedEvents () from /usr/lib/libQtCore.so.4
#53 0x00007f45889650f3 in ?? () from /usr/lib/libQtCore.so.4
#54 0x00007f4582ba1aa2 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#55 0x00007f4582ba521d in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#56 0x00007f4582ba53db in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#57 0x00007f4588964d8f in QEventDispatcherGlib::processEvents () from /usr/lib/libQtCore.so.4
#58 0x00007f45878a451f in ?? () from /usr/lib/libQtGui.so.4
#59 0x00007f458893f232 in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#60 0x00007f458893f3c5 in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#61 0x00007f4588941515 in QCoreApplication::exec () from /usr/lib/libQtCore.so.4
#62 0x0000000000404991 in _start ()

Comment 6 Christophe Marin 2008-12-17 22:55:13 UTC
ok, reproduced with trunk.

detailed backtrace : 

Application: KMail (kmail), signal SIGABRT
[?1034h[Thread debugging using libthread_db enabled]
[Current thread is 1 (Thread 0xb3fbb920 (LWP 20200))]

Thread 1 (Thread 0xb3fbb920 (LWP 20200)):
[KCrash Handler]
#6  0xffffe430 in __kernel_vsyscall ()
#7  0xb5d6e990 in raise () from /lib/libc.so.6
#8  0xb5d702c8 in abort () from /lib/libc.so.6
#9  0xb6a5b8d5 in qt_message_output(QtMsgType, char const*) () from /usr/lib/libQtCore.so.4
#10 0xb6a5b9b2 in qFatal(char const*, ...) () from /usr/lib/libQtCore.so.4
#11 0xb6a5ba0c in qt_assert_x(char const*, char const*, char const*, int) () from /usr/lib/libQtCore.so.4
#12 0xb70e6248 in QList<int>::operator[] (this=0xbfe47114, i=0) at /usr/include/QtCore/qlist.h:395
#13 0xb711df0d in KCal::IncidenceFormatter::recurrenceString (incidence=0x87b47b0) at /home/krop/kde/src/KDE/kdepimlibs/kcal/incidenceformatter.cpp:2163
#14 0xb7126dab in invitationDetailsEvent (event=0x87b47b0, noHtmlMode=true) at /home/krop/kde/src/KDE/kdepimlibs/kcal/incidenceformatter.cpp:749
#15 0xb712d9ca in KCal::IncidenceFormatter::InvitationBodyVisitor::visit (this=0xbfe4734c, event=0x87b47b0) at /home/krop/kde/src/KDE/kdepimlibs/kcal/incidenceformatter.cpp:1192
#16 0xb70d66f7 in KCal::Event::accept (this=0x87b47b0, v=@0xbfe4734c) at /home/krop/kde/src/KDE/kdepimlibs/kcal/event.h:200
#17 0xb712a930 in KCal::IncidenceFormatter::ScheduleMessageVisitor::act (this=0xbfe4734c, incidence=0x87b47b0, msg=0x8520d08) at /home/krop/kde/src/KDE/kdepimlibs/kcal/incidenceformatter.cpp:1147
#18 0xb71219dd in formatICalInvitationHelper (invitation=
      {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 14683}, alloc = 0, size = 0, data = 0xb6c3c45a, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 660}, alloc = 0, size = 0, data = 0xb6c3c46e, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0xbfe474ec, static codecForCStrings = 0x0}, mCalendar=0xbfe47538, helper=0xbfe4752c, noHtmlMode=true) at /home/krop/kde/src/KDE/kdepimlibs/kcal/incidenceformatter.cpp:1436
#19 0xb712285b in KCal::IncidenceFormatter::formatICalInvitationNoHtml (invitation=
      {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 14683}, alloc = 0, size = 0, data = 0xb6c3c45a, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 660}, alloc = 0, size = 0, data = 0xb6c3c46e, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0xbfe47568, static codecForCStrings = 0x0}, mCalendar=0xbfe47538, helper=0xbfe4752c) at /home/krop/kde/src/KDE/kdepimlibs/kcal/incidenceformatter.cpp:1553
#20 0xb0f1b2d6 in format (this=0x86f1e60, bodyPart=0xbfe475cc, writer=0x83a7e88) at /home/krop/kde/src/KDE/kdepim/plugins/kmail/bodypartformatter/text_calendar.cpp:161
#21 0xb7648c92 in KMail::ObjectTreeParser::parseObjectTree (this=0xbfe4764c, node=0x82e54d0) at /home/krop/kde/src/KDE/kdepim/kmail/objecttreeparser.cpp:260
#22 0xb7649021 in KMail::ObjectTreeParser::stdChildHandling (this=0xbfe47890, child=0x88f5be8) at /home/krop/kde/src/KDE/kdepim/kmail/objecttreeparser.cpp:1084
#23 0xb76493f4 in KMail::ObjectTreeParser::processMultiPartMixedSubtype (this=0xbfe47890, node=0x86b61c8) at /home/krop/kde/src/KDE/kdepim/kmail/objecttreeparser.cpp:1097
#24 0xb7658545 in process (this=0x87d4f78, otp=0xbfe47890, node=0x86b61c8, result=@0xbfe4774c) at /home/krop/kde/src/KDE/kdepim/kmail/bodypartformatter.cpp:118
#25 0xb7648f3b in KMail::ObjectTreeParser::parseObjectTree (this=0xbfe47890, node=0x86b61c8) at /home/krop/kde/src/KDE/kdepim/kmail/objecttreeparser.cpp:282
#26 0xb74adeaa in KMReaderWin::parseMsg (this=0x83addc0, aMsg=0x86bca98) at /home/krop/kde/src/KDE/kdepim/kmail/kmreaderwin.cpp:1618
#27 0xb749faea in KMReaderWin::displayMessage (this=0x83addc0) at /home/krop/kde/src/KDE/kdepim/kmail/kmreaderwin.cpp:1551
#28 0xb749fc7c in KMReaderWin::updateReaderWin (this=0x83addc0) at /home/krop/kde/src/KDE/kdepim/kmail/kmreaderwin.cpp:1491
#29 0xb74a4908 in KMReaderWin::qt_metacall (this=0x83addc0, _c=QMetaObject::InvokeMetaMethod, _id=6, _a=0xbfe47c08) at /home/krop/kde/build/KDE/kdepim/kmail/kmreaderwin.moc:164
#30 0xb6b68580 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQtCore.so.4
#31 0xb6b69302 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#32 0xb6ba37f7 in QTimer::timeout() () from /usr/lib/libQtCore.so.4
#33 0xb6b6ef9e in QTimer::timerEvent(QTimerEvent*) () from /usr/lib/libQtCore.so.4
#34 0xb6b6304f in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4
#35 0xb60e88fc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#36 0xb60f075e in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#37 0xb7e3e5fd in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#38 0xb6b53961 in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#39 0xb6b81b86 in ?? () from /usr/lib/libQtCore.so.4
#40 0xb6b7e060 in ?? () from /usr/lib/libQtCore.so.4
#41 0xb46029a8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#42 0xb4606063 in ?? () from /usr/lib/libglib-2.0.so.0
#43 0xb4606221 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#44 0xb6b7dfb8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#45 0xb6181785 in ?? () from /usr/lib/libQtGui.so.4
#46 0xb6b5201a in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#47 0xb6b521da in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#48 0xb6b54895 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#49 0xb60e8777 in QApplication::exec() () from /usr/lib/libQtGui.so.4
#50 0x0804b539 in main (argc=3, argv=0xbfe484e4) at /home/krop/kde/src/KDE/kdepim/kmail/main.cpp:146

Comment 7 Allen Winter 2008-12-18 02:30:21 UTC
SVN commit 898357 by winterz:

Fix a crash when viewing recurring iCalendar events in kmail body.
New strings are needed for this bugfix. sorry.

Due to the new strings I don't think we can backport this (maybe it
could be done with some tricks to avoid new strings).

Enterprise branches should want this.

BUG: 177946
CCMAIL: kde-i18n-doc@kde.org


 M  +27 -10    incidenceformatter.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=898357