[glib] GAppInfo: overwrite the DISPLAY only if it is set in the launch context



commit 3f816dc5d14ce64f89c5e8b16ac7d8c1f3542b0d
Author: Debarshi Ray <debarshir gnome org>
Date:   Mon Apr 16 23:00:01 2012 +0200

    GAppInfo: overwrite the DISPLAY only if it is set in the launch context
    
    If the launch context is a GAppLaunchContext, and not a
    GdkAppLaunchContext, then g_app_launch_context_get_display will return
    NULL because the get_display virtual method is undefined. The DISPLAY
    might still be inherited from the parent process, in which case
    overwriting it with NULL breaks the launch.
    
    This is a regression introduced in:
    de834bed306565c0652050665eafff4dfcdf0d8b
    
    Fixes: https://bugzilla.gnome.org/672786

 gio/gdesktopappinfo.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
---
diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c
index 7078dab..4044679 100644
--- a/gio/gdesktopappinfo.c
+++ b/gio/gdesktopappinfo.c
@@ -1309,7 +1309,8 @@ _g_desktop_app_info_launch_uris_internal (GAppInfo                   *appinfo,
           display = g_app_launch_context_get_display (launch_context,
                                                       appinfo,
                                                       launched_files);
-          envp = g_environ_setenv (envp, "DISPLAY", display, TRUE);
+          if (display)
+            envp = g_environ_setenv (envp, "DISPLAY", display, TRUE);
 
           if (info->startup_notify)
             {



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