efl ui focus - fix coverity complaints about derfer before null check
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Thu, 28 Sep 2017 03:29:46 +0000 (12:29 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Thu, 28 Sep 2017 06:28:00 +0000 (15:28 +0900)
indeed there was a child cnull check after dereferencing the child...
so check completely. fix CID 1379925

src/lib/elementary/efl_ui_focus_manager_calc.c

index 9f5b36d..50323dd 100644 (file)
@@ -1477,13 +1477,16 @@ _efl_ui_focus_manager_calc_efl_ui_focus_manager_logical_end(Eo *obj EINA_UNUSED,
 
    //we need to return the most lower right element
 
-   while(T(child).children && !child->redirect_manager)
+   while ((child) && (T(child).children) && (!child->redirect_manager))
      child = eina_list_last_data_get(T(child).children);
-   while (child->type != NODE_TYPE_NORMAL && !child->redirect_manager)
+   while ((child) && (child->type != NODE_TYPE_NORMAL) && (!child->redirect_manager))
      child = _prev(child);
 
-   ret.is_regular_end = child->type == NODE_TYPE_NORMAL;
-   ret.element = child ? child->focusable : NULL;
+   if (child)
+     {
+        ret.is_regular_end = child->type == NODE_TYPE_NORMAL;
+        ret.element = child ? child->focusable : NULL;
+     }
    return ret;
 }