aboutsummaryrefslogtreecommitdiff
path: root/x11/gdm2/files/patch-daemon::slave.c
diff options
context:
space:
mode:
Diffstat (limited to 'x11/gdm2/files/patch-daemon::slave.c')
-rw-r--r--x11/gdm2/files/patch-daemon::slave.c118
1 files changed, 0 insertions, 118 deletions
diff --git a/x11/gdm2/files/patch-daemon::slave.c b/x11/gdm2/files/patch-daemon::slave.c
deleted file mode 100644
index 060a89ff690f..000000000000
--- a/x11/gdm2/files/patch-daemon::slave.c
+++ /dev/null
@@ -1,118 +0,0 @@
-
-$FreeBSD$
-
---- daemon/slave.c.orig Tue Jan 1 04:48:07 2002
-+++ daemon/slave.c Fri Jan 11 15:51:27 2002
-@@ -45,6 +45,11 @@
- #include <time.h>
- #include <syslog.h>
-
-+#ifdef HAVE_LOGINCAP
-+#include <unistd.h>
-+#include <login_cap.h>
-+#endif
-+
- #include <vicious.h>
-
- #include "gdm.h"
-@@ -140,6 +145,8 @@
- static gboolean x_error_occured = FALSE;
- static gboolean gdm_got_usr2 = FALSE;
-
-+static void changeUser(struct passwd *pwent, char *login);
-+
- /* ignore handlers */
- static int
- ignore_xerror_handler (Display *disp, XErrorEvent *evt)
-@@ -1785,6 +1792,27 @@
-
- }
-
-+#ifdef HAVE_LOGINCAP
-+void changeUser(struct passwd *pwent, char *login) {
-+ if (setsid() == -1)
-+ gdm_child_exit (DISPLAY_REMANAGE, _("gdm_slave_session_start: setsid() failed for %s. Aborting."), login);
-+ if (setusercontext(NULL, pwent, pwent->pw_uid, LOGIN_SETALL) == -1)
-+ gdm_child_exit (DISPLAY_REMANAGE, _("gdm_slave_session_start: setusercontext() failed for %s. Aborting."), login);
-+}
-+#else
-+void changeUser(struct passwd *pwent, char *login) {
-+ setpgid(0, 0);
-+ umask(022);
-+ /* setup the user's correct group */
-+ if (setgid(pwent->pw_gid) < 0)
-+ gdm_child_exit (DISPLAY_REMANAGE, _("gdm_slave_session_start: Could not setgid %d. Aborting."), pwent->pw_gid);
-+ if (initgroups(login, pwent->pw_gid) < 0)
-+ gdm_child_exit (DISPLAY_REMANAGE, _("gdm_slave_session_start: initgroups() failed for %s. Aborting."), login);
-+ if (setuid(pwent->pw_uid) < 0)
-+ gdm_child_exit (DISPLAY_REMANAGE, _("gdm_slave_session_start: Could not become %s. Aborting."), login);
-+}
-+#endif
-+
- static char *
- dequote (const char *in)
- {
-@@ -1840,12 +1871,6 @@
- if (gnome_session != NULL)
- ve_setenv ("GDM_GNOME_SESSION", gnome_session, TRUE);
-
-- /* Special PATH for root */
-- if (pwent->pw_uid == 0)
-- ve_setenv ("PATH", GdmRootPath, TRUE);
-- else
-- ve_setenv ("PATH", GdmDefaultPath, TRUE);
--
- /* Eeeeek, this no lookie as a correct language code, let's
- * try unaliasing it */
- if (strlen (language) < 3 ||
-@@ -1853,14 +1878,31 @@
- language = unaliaslang (language);
- }
-
-- /* Set locale */
-+ changeUser(pwent, login);
-+
-+ /*
-+ * Set locale. XXX in the HAVE_LOGINCAP case we override user's
-+ * default language, but there is no other way around, because there
-+ * is no way to select "Use user's default language" in the GDM, so
-+ * that we either have to give up ability to select language other
-+ * one specified in the login.conf, or just ignore default setting.
-+ * I selected the latter, which is suboptimal, but at least gives
-+ * some freedom to the user.
-+ */
- ve_setenv ("LANG", language, TRUE);
- ve_setenv ("GDM_LANG", language, TRUE);
-+
-+#ifndef HAVE_LOGINCAP
-+
-+ /* Special PATH for root */
-+ if (pwent->pw_uid == 0)
-+ ve_setenv("PATH", GdmRootPath, TRUE);
-+ else
-+ ve_setenv("PATH", GdmDefaultPath, TRUE);
-+#else
-+ /* Do not reset PATH */
-+#endif
-
-- setpgid (0, 0);
--
-- umask (022);
--
- /* setup the verify env vars */
- if ( ! gdm_verify_setup_env (d))
- gdm_child_exit (DISPLAY_REMANAGE,
-@@ -1870,12 +1912,8 @@
-
- /* setup egid to the correct group,
- * not to leave the egid around */
-- setegid (pwent->pw_gid);
-+ /*setegid (pwent->pw_gid);*/
-
-- if (setuid (pwent->pw_uid) < 0)
-- gdm_child_exit (DISPLAY_REMANAGE,
-- _("gdm_slave_session_start: Could not become %s. Aborting."), login);
--
- chdir (home_dir);
-
- /* anality, make sure nothing is in memory for gnome_config