diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | configure.ac | 14 | ||||
-rw-r--r-- | daemon/Makefile.am | 1 | ||||
-rw-r--r-- | daemon/gdm-display-access-file.c | 16 | ||||
-rw-r--r-- | data/Makefile.am | 10 |
5 files changed, 43 insertions, 7 deletions
@@ -1,3 +1,12 @@ +2008-04-08 Ray Strode <rstrode@redhat.com> + + * configure.ac + * data/Makefile.am: + * daemon/Makefile.am: + * daemon/gdm-display-access-file.c + (_create_xauth_file_for_user) + Store X auth password in /var/run/gdm instead of /tmp + 2008-04-07 Ray Strode <rstrode@redhat.com> * gui/simple-greeter/gdm-language-chooser-dialog.c diff --git a/configure.ac b/configure.ac index f3246c80..1e22b98a 100644 --- a/configure.ac +++ b/configure.ac @@ -1247,6 +1247,20 @@ fi AC_SUBST(GDM_WORKING_DIR) dnl --------------------------------------------------------------------------- +dnl - Directory for X auth cookies +dnl --------------------------------------------------------------------------- + +AC_ARG_WITH(xauth-dir, [ --with-xauth-dir=<dir> xauth cookie directory]) + +if ! test -z "$with_xauth_dir"; then + GDM_XAUTH_DIR=$with_xauth_dir +else + GDM_XAUTH_DIR=${localstatedir}/run/gdm +fi + +AC_SUBST(GDM_XAUTH_DIR) + +dnl --------------------------------------------------------------------------- dnl - Finish dnl --------------------------------------------------------------------------- diff --git a/daemon/Makefile.am b/daemon/Makefile.am index 89d1449b..5a2269bc 100644 --- a/daemon/Makefile.am +++ b/daemon/Makefile.am @@ -16,6 +16,7 @@ INCLUDES = \ -DPIXMAPDIR=\"$(pixmapdir)\" \ -DSBINDIR=\"$(sbindir)\" \ -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \ + -DGDM_XAUTH_DIR=\"$(GDM_XAUTH_DIR)\" \ -DGDM_DEFAULTS_CONF=\"$(GDM_DEFAULTS_CONF)\" \ -DGDM_CUSTOM_CONF=\"$(GDM_CUSTOM_CONF)\" \ -DGDM_OLD_CONF=\"$(GDM_OLD_CONF)\" \ diff --git a/daemon/gdm-display-access-file.c b/daemon/gdm-display-access-file.c index 7ee6f827..7607443b 100644 --- a/daemon/gdm-display-access-file.c +++ b/daemon/gdm-display-access-file.c @@ -220,7 +220,6 @@ _create_xauth_file_for_user (const char *username, GError **error) { char *template; - GError *open_error; int fd; FILE *fp; uid_t uid; @@ -228,14 +227,19 @@ _create_xauth_file_for_user (const char *username, fp = NULL; - template = g_strdup_printf (".gdm-xauth-%s.XXXXXX", username); + template = g_strdup_printf (GDM_XAUTH_DIR + "/auth-cookie-XXXXXXXX-for-%s", + username); - open_error = NULL; - fd = g_file_open_tmp (template, filename, &open_error); - g_free (template); + fd = g_mkstemp (template); + *filename = template; + template = NULL; if (fd < 0) { - g_propagate_error (error, open_error); + g_set_error (error, + G_FILE_ERROR, + g_file_error_from_errno (errno), + "%s", g_strerror (errno)); goto out; } diff --git a/data/Makefile.am b/data/Makefile.am index a9fa5549..85367ea3 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -11,6 +11,7 @@ postdir = $(gdmconfdir)/PostSession predir = $(gdmconfdir)/PreSession postlogindir = $(gdmconfdir)/PostLogin workingdir = $(GDM_WORKING_DIR) +xauthdir = $(GDM_XAUTH_DIR) Xsession: $(srcdir)/Xsession.in sed -e 's,[@]XSESSION_SHELL[@],$(XSESSION_SHELL),g' \ @@ -114,7 +115,8 @@ uninstall-hook: $(DESTDIR)$(PAM_PREFIX)/pam.d/gdm-autologin \ $(DESTDIR)$(workingdir)/.gconf.path \ -rf \ - $(DESTDIR)$(workingdir)/.gconf.mandatory + $(DESTDIR)$(workingdir)/.gconf.mandatory \ + $(DESTDIR)$(xauthdir) install-data-hook: gdm.conf-custom Xsession Init PostSession PreSession gconf.path if test '!' -d $(DESTDIR)$(gdmconfdir); then \ @@ -190,6 +192,12 @@ install-data-hook: gdm.conf-custom Xsession Init PostSession PreSession gconf.pa fi; \ fi + if test '!' -d $(DESTDIR)$(xauthdir); then \ + $(mkinstalldirs) $(DESTDIR)$(xauthdir); \ + chmod 1770 $(DESTDIR)$(xauthdir); \ + chown root:gdm $(DESTDIR)$(xauthdir) || : ; \ + fi + if test '!' -d $(DESTDIR)$(workingdir); then \ $(mkinstalldirs) $(DESTDIR)$(workingdir); \ chmod 1770 $(DESTDIR)$(workingdir); \ |