cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ac5a0b7e79d6b32285bd7b794f050826f38cc7c2
commit ac5a0b7e79d6b32285bd7b794f050826f38cc7c2 Author: Cedric BAIL <ced...@osg.samsung.com> Date: Thu Jun 2 17:20:16 2016 -0700 elementary: avoid random memory access. It seems that this content_get function are not getting the data pointer they expect at all. --- src/lib/elementary/elm_dayselector.c | 3 ++- src/lib/elementary/elm_hover.c | 31 +++++++++++++++---------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/lib/elementary/elm_dayselector.c b/src/lib/elementary/elm_dayselector.c index bc03214..a65ca94 100644 --- a/src/lib/elementary/elm_dayselector.c +++ b/src/lib/elementary/elm_dayselector.c @@ -220,9 +220,10 @@ _item_find(const Evas_Object *obj, } static Eina_Bool -_elm_dayselector_content_set(Eo *obj, Elm_Dayselector_Data *sd, const char *item, Evas_Object *content) +_elm_dayselector_content_set(Eo *obj, Elm_Dayselector_Data *pd, const char *item, Evas_Object *content) { Eina_Bool int_ret = EINA_FALSE; + Elm_Dayselector_Data *sd = eo_data_scope_get(obj, MY_CLASS); int day; char buf[1024]; diff --git a/src/lib/elementary/elm_hover.c b/src/lib/elementary/elm_hover.c index d83efb0..5d05458 100644 --- a/src/lib/elementary/elm_hover.c +++ b/src/lib/elementary/elm_hover.c @@ -20,8 +20,8 @@ #define MY_CLASS_NAME "Elm_Hover" #define MY_CLASS_NAME_LEGACY "elm_hover" -#define ELM_HOVER_PARTS_FOREACH unsigned int i; \ - for (i = 0; i < sizeof(sd->subs) / sizeof(sd->subs[0]); i++) +#define ELM_HOVER_PARTS_FOREACH \ + for (unsigned int i = 0; i < sizeof(sd->subs) / sizeof(sd->subs[0]); i++) #define _HOV_LEFT (&(sd->subs[0])) #define _HOV_TOP_LEFT (&(sd->subs[1])) @@ -400,9 +400,10 @@ _elm_hover_subs_del(Elm_Hover_Data *sd) } static Eina_Bool -_elm_hover_content_set(Eo *obj, Elm_Hover_Data *sd, const char *swallow, Evas_Object *content) +_elm_hover_content_set(Eo *obj, Elm_Hover_Data *pd, const char *swallow, Evas_Object *content) { Eina_Bool int_ret; + Elm_Hover_Data *sd = eo_data_scope_get(obj, MY_CLASS); if (!swallow) return EINA_FALSE; @@ -564,15 +565,13 @@ _hov_dismiss_cb(void *data, } EOLIAN static void -_elm_hover_evas_object_smart_add(Eo *obj, Elm_Hover_Data *priv) +_elm_hover_evas_object_smart_add(Eo *obj, Elm_Hover_Data *sd) { - unsigned int i; - evas_obj_smart_add(eo_super(obj, MY_CLASS)); elm_widget_sub_object_parent_add(obj); - for (i = 0; i < sizeof(priv->subs) / sizeof(priv->subs[0]); i++) - priv->subs[i].swallow = _content_aliases[i].alias; + ELM_HOVER_PARTS_FOREACH + sd->subs[i].swallow = _content_aliases[i].alias; if (!elm_layout_theme_set(obj, "hover", "base", elm_widget_style_get(obj))) CRI("Failed to set layout!"); @@ -582,16 +581,16 @@ _elm_hover_evas_object_smart_add(Eo *obj, Elm_Hover_Data *priv) elm_layout_signal_callback_add (obj, "elm,action,hide,finished", "elm", _hov_hide_cb, obj); - priv->offset = evas_object_rectangle_add(evas_object_evas_get(obj)); - evas_object_pass_events_set(priv->offset, EINA_TRUE); - evas_object_color_set(priv->offset, 0, 0, 0, 0); + sd->offset = evas_object_rectangle_add(evas_object_evas_get(obj)); + evas_object_pass_events_set(sd->offset, EINA_TRUE); + evas_object_color_set(sd->offset, 0, 0, 0, 0); - priv->size = evas_object_rectangle_add(evas_object_evas_get(obj)); - evas_object_pass_events_set(priv->size, EINA_TRUE); - evas_object_color_set(priv->size, 0, 0, 0, 0); + sd->size = evas_object_rectangle_add(evas_object_evas_get(obj)); + evas_object_pass_events_set(sd->size, EINA_TRUE); + evas_object_color_set(sd->size, 0, 0, 0, 0); - elm_layout_content_set(obj, "elm.swallow.offset", priv->offset); - elm_layout_content_set(obj, "elm.swallow.size", priv->size); + elm_layout_content_set(obj, "elm.swallow.offset", sd->offset); + elm_layout_content_set(obj, "elm.swallow.size", sd->size); elm_widget_can_focus_set(obj, EINA_FALSE); } --