genlist: fix dangling item pointer accessing in filter queue idle enterer 72/137372/1 accepted/tizen/unified/20170711.181143 submit/tizen/20170707.071852 submit/tizen/20170711.023244
authorSangHyeon Lee <sh10233.lee@samsung.com>
Wed, 5 Jul 2017 10:59:57 +0000 (19:59 +0900)
committerSangHyeon Lee <sh10233.lee@samsung.com>
Wed, 5 Jul 2017 11:00:01 +0000 (20:00 +0900)
Change-Id: Iceaf891673f98a9b51088eb7694bd8a1956db1d7
Signed-off-by: SangHyeon Lee <sh10233.lee@samsung.com>
src/mobile_lib/elm_genlist.c

index 5bb1456..409414c 100644 (file)
@@ -7995,7 +7995,6 @@ _elm_genlist_block_count_get(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd)
 static void
 _filter_item_internal(Elm_Gen_Item *it)
 {
-   if (!it) return;
    ELM_GENLIST_DATA_GET_FROM_ITEM(it, sd);
    if (sd->filter_data && it->itc->func.filter_get)
      {
@@ -8069,8 +8068,11 @@ _filter_queue_process(Elm_Genlist_Data *sd)
              if (it == first) return n;
           }
         sd->filter_queue = eina_list_remove_list(sd->filter_queue, sd->filter_queue);
-        _filter_item_internal(it);
-        GL_IT(it)->block->calc_done = EINA_FALSE;
+        if (it)
+          {
+             _filter_item_internal(it);
+             GL_IT(it)->block->calc_done = EINA_FALSE;
+          }
         sd->calc_done = EINA_FALSE;
         _changed(sd->pan_obj);
         if ((ecore_time_get() - t0) > (ecore_animator_frametime_get()))