summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric Bail <cedric@osg.samsung.com>2016-06-15 10:45:40 -0700
committerCedric Bail <cedric@osg.samsung.com>2016-06-15 10:54:09 -0700
commit70aa45829ae5460bbe0da10ab1fca8308a3a83bf (patch)
tree3d0dc9bf40e431a5a21501d5a8849cc1ce3802b5
parent47e9d11f746fc7117a35c2f656ce8e624f7d2514 (diff)
downloadefl-70aa45829ae5460bbe0da10ab1fca8308a3a83bf.tar.gz
ecore: prevent crash in case of double ecore_timer_del in legacy case.
-rw-r--r--src/lib/ecore/ecore_timer.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/lib/ecore/ecore_timer.c b/src/lib/ecore/ecore_timer.c
index a01d81075a..b7fce54c58 100644
--- a/src/lib/ecore/ecore_timer.c
+++ b/src/lib/ecore/ecore_timer.c
@@ -235,6 +235,15 @@ ecore_timer_del(Ecore_Timer *timer)
EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL);
legacy = eo_key_data_get(timer, "_legacy");
+ // If legacy == NULL, this means double free or something
+ if (legacy == NULL)
+ {
+ // Just in case it is an Eo timer, but not a legacy one.
+ ERR("You are trying to destroy a timer which seems dead already.");
+ eo_unref(timer);
+ return NULL;
+ }
+
data = (void*) legacy->data;
if (legacy->inside_call)