devilhorns pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=0001b6578360d50f864a60e22a4ee7ebbf2f22a8

commit 0001b6578360d50f864a60e22a4ee7ebbf2f22a8
Author: Chris Michael <[email protected]>
Date:   Thu Jul 24 11:33:21 2014 -0400

    ecore-drm: Fix improper shutdown for error cases in ecore_drm_init
    
    If an error occurs during ecore_drm_init, we need to cleanup things in
    the proper order. This fixes the case where ecore_event_shutdown and
    ecore_shutdown May Not have been called (in previous revision) due to
    the error conditions being out of order.
    
    Signed-off-by: Chris Michael <[email protected]>
---
 src/lib/ecore_drm/ecore_drm.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/lib/ecore_drm/ecore_drm.c b/src/lib/ecore_drm/ecore_drm.c
index 6900e67..79d2b78 100644
--- a/src/lib/ecore_drm/ecore_drm.c
+++ b/src/lib/ecore_drm/ecore_drm.c
@@ -67,7 +67,7 @@ ecore_drm_init(void)
      eina_log_domain_level_set("ecore_drm", EINA_LOG_LEVEL_DBG);
 
    /* get sd-login properties we need */
-   if (sd_pid_get_session(getpid(), &sid) < 0) goto log_err;
+   if (sd_pid_get_session(getpid(), &sid) < 0) goto sd_err;
 
    /* try to init dbus */
    if (!_ecore_drm_dbus_init(sid)) goto dbus_err;
@@ -81,12 +81,13 @@ ecore_drm_init(void)
 udev_err:
    _ecore_drm_dbus_shutdown();
 dbus_err:
-   ecore_event_shutdown();
-   ecore_shutdown();
+   free(sid);
+sd_err:
    eina_log_domain_unregister(_ecore_drm_log_dom);
    _ecore_drm_log_dom = -1;
-   free(sid);
 log_err:
+   ecore_event_shutdown();
+   ecore_shutdown();
    eina_shutdown();
    return --_ecore_drm_init_count;
 }

-- 


Reply via email to