summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--configure.ac14
-rw-r--r--daemon/Makefile.am1
-rw-r--r--daemon/gdm-display-access-file.c16
-rw-r--r--data/Makefile.am10
5 files changed, 43 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index aa0518c2..6eaeee75 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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); \