Evas smart: Add obj type safety check to callback_del.
authorMrunal Sovani <mrunal.s@samsung.com>
Thu, 24 Sep 2015 13:57:10 +0000 (14:57 +0100)
committerTom Hacohen <tom@stosb.com>
Thu, 24 Sep 2015 13:59:01 +0000 (14:59 +0100)
Summary:
Evas_Smart_Data retrieved from eo_data_scope_get might be NULL
in case the input Evas_Object is not valid Evas_Object.
The smart data gets dereferenced and can cause a crash if its NULL
Hence return in case smart data is NULL.

@fix

Signed-off-by: Mrunal Sovani <mrunal.s@samsung.com>
Reviewers: raster, Hermet, tasn

Reviewed By: tasn

Subscribers: singh.amitesh, cedric, sachin.dev

Differential Revision: https://phab.enlightenment.org/D3106

src/lib/evas/canvas/evas_object_smart.c

index cacc5a4..1529f75 100644 (file)
@@ -722,6 +722,7 @@ evas_object_smart_callback_del(Evas_Object *eo_obj, const char *event, Evas_Smar
    return NULL;
    MAGIC_CHECK_END();
    o = eo_data_scope_get(eo_obj, MY_CLASS);
+   if (!o) return NULL;
 
    if (!event) return NULL;
    const Eo_Event_Description *eo_desc = eo_base_legacy_only_event_description_get(event);