GNOME Bugzilla – Bug 675285
[abrt] Crash on deleted event move
Last modified: 2012-07-27 12:01:04 UTC
Moving this from a downstream bug report: https://bugzilla.redhat.com/show_bug.cgi?id=817431 [abrt] evolution-data-server-3.4.1-2.fc17: ews_cal_modify_object_cb: Process /usr/libexec/evolution-calendar-factory was killed by signal 11 (SIGSEGV) libreport version: 2.0.10 abrt_version: 2.0.10 backtrace_rating: 4 cmdline: /usr/libexec/evolution-calendar-factory comment: I opened Evolution, and the calendar (via EWS) synced with Exchange 2010. I created an entry in the Evolution interface. It appeared in the Exchange calendar. I deleted the entry in the Exchange calendar via the Outlook Web Interface. HOWEVER: the entry did NOT delete out of Evolution's interface. In Evolution, I tried to drag the deleted-in-Outlook-but-still-showing-in-Evolution entry to a later hour of the day. The calendar-factory crashed. crash_function: ews_cal_modify_object_cb executable: /usr/libexec/evolution-calendar-factory kernel: 3.3.4-1.fc17.x86_64 time: Mon 30 Apr 2012 02:00:06 AM SAST Core was generated by `/usr/libexec/evolution-calendar-factory'. Program terminated with signal 11, Segmentation fault.
+ Trace 230163
Thread 5 (Thread 0x7f209effd700 (LWP 9476))
Thread 1 (Thread 0x7f20baf18800 (LWP 9461))
Confirming, I can reproduce it too. The server returns: <m:UpdateItemResponse ...> <m:ResponseMessages> <m:UpdateItemResponseMessage ResponseClass="Error"> <m:MessageText>The specified object was not found in the store.</m:MessageText> <m:ResponseCode>ErrorItemNotFound</m:ResponseCode> <m:DescriptiveLinkKey>0</m:DescriptiveLinkKey> <m:Items/> </m:UpdateItemResponseMessage> </m:ResponseMessages> </m:UpdateItemResponse> though in the function above is error NULL, same as item_id, where dereferencing item_id leads to the crash.
Err, I caused it with my changes from bug #670217.
Created attachment 219733 [details] [review] ews patch for evolution-ews; This was slightly tricky, because the same result parser was used for GetItems, UpdateItems, CreateItems and MoveItems requests, but only on GetItems was counted with possible error items returned from the server ('error item' is an item, which holds error information). I overlooked the multi-usage of the response parser function, which led to the crash, because the code didn't check what item type the returned item is, it expects always correct item. I didn't change this part, I changed the other callers, which are usually called for one item anyway.
Created commit a89bd0b in ews master (3.5.5+) Created commit 2e8e66d in ews gnome-3-4 (3.4.4+)