+2007-12-26 Nicolas François <nicolas.francois@centraliens.net>
+
+ Merge Debian's patch 496_login_init_session
+ * src/login.c, src/sulogin.c: If started as init, start a new session.
+
2007-12-26 Nicolas François <nicolas.francois@centraliens.net>
Merge Debian's patch 408_passwd_check_arguments
user-, user1-user2).
- passwd
* Make sure that no more than one username argument was provided.
+- su
+ * If started as init, start a new session.
+- sulogin
+ * If started as init, start a new session.
shadow-4.0.18.2 -> shadow-4.1.0 09-12-2008
#include <signal.h>
#include <stdio.h>
#include <sys/stat.h>
+#include <sys/ioctl.h>
#include "defines.h"
#include "faillog.h"
#include "failure.h"
}
/* child */
#endif
+ /* If we were init, we need to start a new session */
+ if (getppid() == 1) {
+ setsid();
+ if (ioctl(0, TIOCSCTTY, 1))
+ fprintf(stderr,_("TIOCSCTTY failed on %s"),tty);
+ }
/* We call set_groups() above because this clobbers pam_groups.so */
#ifndef USE_PAM
#include <pwd.h>
#include <signal.h>
#include <stdio.h>
+#include <sys/ioctl.h>
#include "defines.h"
#include "getdef.h"
#include "prototypes.h"
#endif
exit (1); /* must be a terminal */
}
+ /* If we were init, we need to start a new session */
+ if (getppid() == 1) {
+ setsid();
+ if (ioctl(0, TIOCSCTTY, 1))
+ fprintf(stderr,_("TIOCSCTTY failed"));
+ }
while (*envp) /* add inherited environment, */
addenv (*envp++, NULL); /* some variables change later */