GNOME Bugzilla – Bug 597567
Crash in comp_subject()
Last modified: 2011-06-21 11:41:37 UTC
this report has been filed here: https://bugs.edge.launchpad.net/ubuntu/+source/evolution/+bug/442627 "I received an email message with an attached ical event in an IMAP folder. After I had pressed the accept button in this email Evolution crashed." ".
+ Trace 218102
Thread 1 (process 17868)
Downstream bug report about the same in 2.28.0: https://bugzilla.redhat.com/show_bug.cgi?id=542576 Is it possible to attach here that invitation calendar item, please? (Do not forget to strip any private information from there, like names, email addresses, server addresses and such, just keep the information format, like from "user@domain.com" do "xxxx@yyyyyy.com" (see the letters count matches)). I see where the issue is, but I would like to know whether it's a correct information incorrectly parsed within Evolution, or incorrect information stored in the invitation, which is not skipped in Evolution code.
Created attachment 148814 [details] iCal invitation mail causing the crash in Evolution Thanks for looking into this. I've attached the (anonymised) invitation. FYI, I've seen these crashes with other invitations as well (and previous versions of Evolution), but so far, I've only ever gotten iCal invitations from people with Apple Mail, so I cannot say for sure whether it's only a problem with Apple Mail invitations.
Created attachment 148820 [details] Message that crashed evolution This is my message that crashed evolution when I tried to accept it.
Thanks for the data. The both seem to be correct, there is only one possible issue with the first message and the first attendee there: > ATTENDEE;CN="Xxxxx Xxxxxxxxx xx Xxxxx";CUTYPE=INDIVIDUAL;EMAIL="xxxxxxxx > @yyyyyyyyy";PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto: > xxxxxxxx@yyyyyyyyy as the second line is folded just after "mailto:". The second mail doesn't have anything like this, and it still fails to parse the attendee email from there, also for the first attendee. I'll investigate further, I'm only confirming this bug.
Created attachment 148887 [details] another message that crashed evolution If it helps, this is one of the messages that caused a crash in Evolution for me. It comes from someone who uses Apple Mail. What's irritating is that there seems to be real spaces in the email-addresses of the attendees (i opened the file in gedit and in gvim, both show the space in "xx@ yy.de". Could this cause some error?
Thanks for all the data. I looked in all three samples and it turned out that libical, a library Evolution is using to parse those invitations, is behaving strangely for parameters of attendees which it doesn't know. It's an EMAIL and SVP parameters in our case. All works as expected when I remove these from the ATTENDEE lines.
There is some effort in the upstream libical to be able to track unknown parameters [1], but it's quite new, same as RFC 5545. We might wait for the next stable release of libical with the patch from [1] applied, or configure libical same as mozilla does, with undefined ICAL_ERRORS_ARE_FATAL. but as long as evolution is using the upstream version, thus that installed in a system, the configure is question of distro maintainers, not anything in evolution. Just to not forget, when the right version of libical will be widely available, we should add to each main(...) call like this: > ical_set_unknown_token_handling_setting (ICAL_ASSUME_IANA_TOKEN); either in the main(...) or anywhere else, unless they'll change default value to this. [1] http://sourceforge.net/mailarchive/forum.php?thread_name=4B06B149.2080405%40scalix.com&forum_name=freeassociation-devel
Chen, any idea what we should do with this? It's obvious that Evolution shouldn't crash, but simply ignoring the error is not an option either, as there is an information (attendee) lost. This is not that easy because eds is depending on an upstream/system libical these days, thus we are forced to wait for a proper fix until it's included there.
*** Bug 613005 has been marked as a duplicate of this bug. ***
In my opinion, lost data is preferable to a crash, although of course, neither is ideal. If it is possible to detect the particular error that is currently causing the crash, can it just be ignored and a warning presented to the user that data is probably being lost? I know that I for one, would welcome that change, as I am pretty much prevented from using Evolution because of this bug (I receive 6 or more .ics files from iCal every day, each of which crashes Evolution when I accept them).
Thanks for a reminder on this. There is not much we can do, unless creating our own iCal parser "just to prepare it for libical", which is not much practical. I looked on the libical upstream release and I see that they did a release with the fix included just recently (they are not releasing too often), so I'll create a patch which will check whether is evolution or evolution-data-server compiled against this version and it'll do the thing from comment #7.
Created attachment 172904 [details] [review] eds patch for evolution-data-server; Check and use ical_set_unknown_token_handling_setting in e-calendar-factory, if available (libical 0.46+).
Created attachment 172905 [details] [review] evo patch for evolution; Check and use ical_set_unknown_token_handling_setting in evolution itself, if available (libical 0.46+)
Created commit 1e3daec in eds master (2.91.2+) Created commit d4adff1 in evo master (2.91.2+) Created commit 5ef7c6d in eds gnome-2-32 (2.32.1+) Created commit ac0f082 in evo gnome-2-32 (2.32.1+) Fix works only when compiled with libical 0.46 or later, thus this is partially NotGnome bug.
*** Bug 646709 has been marked as a duplicate of this bug. ***
*** Bug 651237 has been marked as a duplicate of this bug. ***
*** Bug 651033 has been marked as a duplicate of this bug. ***