[evolution/gnome-3-24] Crash under e_meeting_time_selector_refresh_cb()



commit 37e25ec062a939b2ab91eac4c2c7cc8a3083a676
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]