[evolution] Crash under e_meeting_time_selector_refresh_cb()
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution] Crash under e_meeting_time_selector_refresh_cb()
- Date: Wed, 12 Apr 2017 12:49:59 +0000 (UTC)
commit 2b9e5356d6f4000962c7d4de740dfd8d47aa101a
Author: Milan Crha <mcrha redhat com>
Date: Wed Apr 12 14:47:20 2017 +0200
Crash under e_meeting_time_selector_refresh_cb()
The callback is called only after the free/busy information is read,
which can take longer than the meeting time selector is shown, thus
even if it is not fully freed, its dispose() handler is called and
internal members are nullified, which could lead to issues and critical
warnings, and in some cases also to crash.
src/calendar/gui/e-meeting-time-sel.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
---
diff --git a/src/calendar/gui/e-meeting-time-sel.c b/src/calendar/gui/e-meeting-time-sel.c
index 847818f..902fe77 100644
--- a/src/calendar/gui/e-meeting-time-sel.c
+++ b/src/calendar/gui/e-meeting-time-sel.c
@@ -1425,6 +1425,12 @@ e_meeting_time_selector_refresh_cb (gpointer data)
{
EMeetingTimeSelector *mts = data;
+ if (!mts->model) {
+ /* Destroyed, do not do anything */
+ g_object_unref (mts);
+ return FALSE;
+ }
+
if (e_meeting_store_get_num_queries (mts->model) == 0) {
GdkCursor *cursor;
GdkWindow *window;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]