elm_need_efret() - improve error handling according to coverity 27/153627/2
authorHosang Kim <hosang12.kim@samsung.com>
Thu, 28 Sep 2017 07:05:21 +0000 (16:05 +0900)
committerGerrit Code Review <gerrit@review.ap-northeast-2.compute.internal>
Fri, 29 Sep 2017 04:23:15 +0000 (04:23 +0000)
fix CID 1360466, CID 1353589

we don't actually chekc if efreet inits right with elm_need_efreet()
as we just assume it inits (And there pretty much is no case where it
will not), but make coverity happy and check.

@fix
Change-Id: Ieb37ab35a6ebc3a7e30b9fd5be6bb0e5b06aa64f
(cherry picked from commit 1b28da85f8e76a9052e99e0bc9394cb26a42cdac)

src/lib/elm_main.c

index c84bddd..d0e24bc 100644 (file)
@@ -587,11 +587,20 @@ EAPI Eina_Bool
 elm_need_efreet(void)
 {
    if (_elm_need_efreet) return EINA_TRUE;
+   if (!efreet_init()) return EINA_FALSE;
+   if (!efreet_mime_init())
+     {
+        efreet_shutdown();
+        return EINA_FALSE;
+     }
+   if (!efreet_trash_init())
+     {
+        efreet_mime_shutdown();
+        efreet_shutdown();
+        return EINA_FALSE;
+     }
    _elm_need_efreet = EINA_TRUE;
-   efreet_init();
-   efreet_mime_init();
-   efreet_trash_init();
-    /*
+   /*
      {
         Eina_List **list;
 
@@ -604,7 +613,7 @@ elm_need_efreet(void)
              *list = eina_list_prepend(*list, (void *)eina_stringshare_add(buf));
           }
      }
-   */
+    */
    return EINA_TRUE;
 }
 
@@ -661,7 +670,8 @@ elm_quicklaunch_init(int    argc,
    if (!ELM_EVENT_PROCESS_FOREGROUND)
      ELM_EVENT_PROCESS_FOREGROUND = ecore_event_type_new();
 
-   ecore_file_init();
+   if (!ecore_file_init())
+     ERR("Elementary cannot init ecore_file");
    eio_init();
 
    _elm_exit_handler = ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, _elm_signal_exit, NULL);