diff options
author | Cedric Bail <cedric@osg.samsung.com> | 2016-06-15 10:45:40 -0700 |
---|---|---|
committer | Cedric Bail <cedric@osg.samsung.com> | 2016-06-15 10:54:09 -0700 |
commit | 70aa45829ae5460bbe0da10ab1fca8308a3a83bf (patch) | |
tree | 3d0dc9bf40e431a5a21501d5a8849cc1ce3802b5 | |
parent | 47e9d11f746fc7117a35c2f656ce8e624f7d2514 (diff) | |
download | efl-70aa45829ae5460bbe0da10ab1fca8308a3a83bf.tar.gz |
ecore: prevent crash in case of double ecore_timer_del in legacy case.
-rw-r--r-- | src/lib/ecore/ecore_timer.c | 9 |
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) |