[gnome-settings-daemon/gnome-3-4] power: Avoid crasher if XRandR calls fail on startup



commit 70cc6e74ef0f14b1c137b7a756a855b3d18c7576
Author: Richard Hughes <richard hughsie com>
Date:   Wed Dec 5 14:11:53 2012 +0100

    power: Avoid crasher if XRandR calls fail on startup
    
    In between a start()/stop() pairing, if gnome_rr_screen_new()
    somehow returns NULL, exit the start() function earlier, before
    anything is set up. This helps avoid a crash where the x11_screen
    could be used by just-set-up signals.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=672245

 plugins/power/gsd-power-manager.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)
---
diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c
index b589162..b4dfac6 100644
--- a/plugins/power/gsd-power-manager.c
+++ b/plugins/power/gsd-power-manager.c
@@ -3672,6 +3672,11 @@ gsd_power_manager_start (GsdPowerManager *manager,
         g_debug ("Starting power manager");
         gnome_settings_profile_start (NULL);
 
+        /* coldplug the list of screens */
+        manager->priv->x11_screen = gnome_rr_screen_new (gdk_screen_get_default (), error);
+        if (manager->priv->x11_screen == NULL)
+                return FALSE;
+
         /* track the active session */
         manager->priv->session = gnome_settings_session_new ();
         g_signal_connect (manager->priv->session, "notify::state",
@@ -3799,11 +3804,6 @@ gsd_power_manager_start (GsdPowerManager *manager,
         g_signal_connect (manager->priv->idletime, "alarm-expired",
                           G_CALLBACK (idle_idletime_alarm_expired_cb), manager);
 
-        /* coldplug the list of screens */
-        manager->priv->x11_screen = gnome_rr_screen_new (gdk_screen_get_default (), error);
-        if (manager->priv->x11_screen == NULL)
-                return FALSE;
-
         /* ensure the default dpms timeouts are cleared */
         ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen,
                                              GNOME_RR_DPMS_ON,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]