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);
 }

-- 


Reply via email to