Blob Blame History Raw
From affb42aff901f407502e4d2c0eb65b4f30a1275d Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Fri, 30 Nov 2012 12:56:58 -0500
Subject: [PATCH] access-file: don't use FamilyLocal for auth cookie

FamilyLocal is really fragile to hostname changes, so
avoid using it when creating the initial auth cookie for
establishing access to the X server for the slave.

This commit changes the Xauthority entry to use FamilyWild
which makes the address of the entry unimportant.

https://bugzilla.gnome.org/show_bug.cgi?id=689370
---
 daemon/gdm-display-access-file.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/daemon/gdm-display-access-file.c b/daemon/gdm-display-access-file.c
index cff8b70..02bd414 100644
--- a/daemon/gdm-display-access-file.c
+++ b/daemon/gdm-display-access-file.c
@@ -425,37 +425,32 @@ static void
 _get_auth_info_for_display (GdmDisplayAccessFile *file,
                             GdmDisplay           *display,
                             unsigned short       *family,
                             unsigned short       *address_length,
                             char                **address,
                             unsigned short       *number_length,
                             char                **number,
                             unsigned short       *name_length,
                             char                **name)
 {
         int display_number;
         gboolean is_local;
 
         gdm_display_is_local (display, &is_local, NULL);
 
         if (is_local) {
-                char localhost[HOST_NAME_MAX + 1] = "";
-                *family = FamilyLocal;
-                if (gethostname (localhost, HOST_NAME_MAX) == 0) {
-                        *address = g_strdup (localhost);
-                } else {
-                        *address = g_strdup ("localhost");
-                }
+                *family = FamilyWild;
+                *address = g_strdup ("localhost");
         } else {
                 *family = FamilyWild;
                 gdm_display_get_remote_hostname (display, address, NULL);
         }
         *address_length = strlen (*address);
 
         gdm_display_get_x11_display_number (display, &display_number, NULL);
         *number = g_strdup_printf ("%d", display_number);
         *number_length = strlen (*number);
 
         *name = g_strdup ("MIT-MAGIC-COOKIE-1");
         *name_length = strlen (*name);
 }
 
-- 
1.8.0