From 569722a4ededb2ebe21545950262ade0c09b0471 Mon Sep 17 00:00:00 2001 From: Alastair Poole Date: Thu, 3 Jan 2019 18:51:08 +0000 Subject: [PATCH] gadgets: pager (fix crash on mouse up). Summary: Animator was crashing due to invalid memory access. This resolves this problem. Test Plan: * Add new gadget pager to desktop/bryce. * Move window within pager boundaries. * Finish window drag within pager. * CRASH of animator thread (or worse). * Apply patch. * Use new peger without fear of disaster. Reviewers: raster, zmike, cedric, stephenmhouston, devilhorns Reviewed By: zmike Tags: #enlightenment-git Differential Revision: https://phab.enlightenment.org/D7536 --- src/modules/pager/gadget/pager.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/modules/pager/gadget/pager.c b/src/modules/pager/gadget/pager.c index 229df32d9..a5df14ff5 100644 --- a/src/modules/pager/gadget/pager.c +++ b/src/modules/pager/gadget/pager.c @@ -2423,6 +2423,10 @@ _pager_desk_cb_mouse_up(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_U Pager_Desk *pd; Pager *p; + pd = data; + + if (!pd) return; + if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) { pd->drag.start = 0; @@ -2431,9 +2435,6 @@ _pager_desk_cb_mouse_up(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_U } if (_pager_check_modifiers(ev->modifiers)) return; - pd = data; - - if (!pd) return; p = pd->pager; /* FIXME: pd->pager->dragging is 0 when finishing a drag from desk to desk */