Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP2:GA
gdm.1499
gdm-xauthlocalhostname.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gdm-xauthlocalhostname.patch of Package gdm.1499
Index: gdm-3.7.3.1/daemon/gdm-display-access-file.c =================================================================== --- gdm-3.7.3.1.orig/daemon/gdm-display-access-file.c +++ gdm-3.7.3.1/daemon/gdm-display-access-file.c @@ -443,13 +443,10 @@ _get_auth_info_for_display (GdmDisplayAc * * https://bugs.freedesktop.org/show_bug.cgi?id=43425 */ - char localhost[HOST_NAME_MAX + 1] = ""; *family = FamilyLocal; - if (gethostname (localhost, HOST_NAME_MAX) == 0) { - *address = g_strdup (localhost); - } else { - *address = g_strdup ("localhost"); - } + /* using the new function we create in the patch, to detect + * changes here, in the original code */ + *address = gdm_gethostname (); } else { *family = FamilyWild; gdm_display_get_remote_hostname (display, address, NULL); Index: gdm-3.7.3.1/daemon/gdm-launch-environment.c =================================================================== --- gdm-3.7.3.1.orig/daemon/gdm-launch-environment.c +++ gdm-3.7.3.1/daemon/gdm-launch-environment.c @@ -284,6 +284,11 @@ build_launch_environment (GdmLaunchEnvir g_hash_table_insert (hash, g_strdup ("GDM_SEAT_ID"), g_strdup (seat_id)); } + if (launch_environment->priv->x11_display_is_local) { + g_hash_table_remove (hash, "XAUTHLOCALHOSTNAME"); + g_hash_table_insert (hash, g_strdup ("XAUTHLOCALHOSTNAME"), gdm_gethostname ()); + } + g_hash_table_insert (hash, g_strdup ("PATH"), g_strdup (g_getenv ("PATH"))); g_hash_table_insert (hash, g_strdup ("RUNNING_UNDER_GDM"), g_strdup ("true")); Index: gdm-3.7.3.1/daemon/gdm-session.c =================================================================== --- gdm-3.7.3.1.orig/daemon/gdm-session.c +++ gdm-3.7.3.1/daemon/gdm-session.c @@ -2374,6 +2374,14 @@ setup_session_environment (GdmSession *s self->priv->user_x11_authority_file); } + if (self->priv->display_is_local) { + char *hostname = gdm_gethostname (); + gdm_session_set_environment_variable (self, + "XAUTHLOCALHOSTNAME", + hostname); + g_free (hostname); + } + if (g_getenv ("WINDOWPATH") != NULL) { gdm_session_set_environment_variable (self, "WINDOWPATH", Index: gdm-3.7.3.1/daemon/gdm-slave.c =================================================================== --- gdm-3.7.3.1.orig/daemon/gdm-slave.c +++ gdm-3.7.3.1/daemon/gdm-slave.c @@ -255,6 +255,10 @@ get_script_environment (GdmSlave *slav g_hash_table_insert (hash, g_strdup ("REMOTE_HOST"), g_strdup (slave->priv->display_hostname)); } + if (slave->priv->display_is_local) { + g_hash_table_insert (hash, g_strdup ("XAUTHLOCALHOSTNAME"), gdm_gethostname ()); + } + /* Runs as root */ g_hash_table_insert (hash, g_strdup ("XAUTHORITY"), g_strdup (slave->priv->display_x11_authority_file)); g_hash_table_insert (hash, g_strdup ("DISPLAY"), g_strdup (slave->priv->display_name)); @@ -644,6 +648,11 @@ gdm_slave_connect_to_x11_display (GdmSla g_setenv ("DISPLAY", slave->priv->display_name, TRUE); g_setenv ("XAUTHORITY", slave->priv->display_x11_authority_file, TRUE); + do { + char *hostname = gdm_gethostname (); + g_setenv ("XAUTHLOCALHOSTNAME", hostname, TRUE); + g_free (hostname); + } while (0); sigemptyset (&mask); sigaddset (&mask, SIGCHLD); Index: gdm-3.7.3.1/common/gdm-common.c =================================================================== --- gdm-3.7.3.1.orig/common/gdm-common.c +++ gdm-3.7.3.1/common/gdm-common.c @@ -509,3 +509,14 @@ gdm_generate_random_bytes (gsize size close (fd); return bytes; } + +char * +gdm_gethostname (void) +{ + char localhost[HOST_NAME_MAX + 1] = ""; + if (gethostname (localhost, HOST_NAME_MAX) == 0) { + return g_strdup (localhost); + } else { + return g_strdup ("localhost"); + } +} Index: gdm-3.7.3.1/common/gdm-common.h =================================================================== --- gdm-3.7.3.1.orig/common/gdm-common.h +++ gdm-3.7.3.1/common/gdm-common.h @@ -58,6 +58,7 @@ gboolean gdm_string_hex_decode int insert_at); char *gdm_generate_random_bytes (gsize size, GError **error); +char *gdm_gethostname (void); G_END_DECLS
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor