View | Details | Raw Unified | Return to bug 1889 | Differences between
and this patch

Collapse All | Expand All

(-)openssh-5.8p1/session.c.pwchange (+16 lines)
Lines 1542-1552 do_setusercontext(struct passwd *pw) Link Here
1542
static void
1542
static void
1543
do_pwchange(Session *s)
1543
do_pwchange(Session *s)
1544
{
1544
{
1545
#ifdef WITH_SELINUX
1546
	pid_t pid;
1547
#endif
1548
1545
	fflush(NULL);
1549
	fflush(NULL);
1546
	fprintf(stderr, "WARNING: Your password has expired.\n");
1550
	fprintf(stderr, "WARNING: Your password has expired.\n");
1547
	if (s->ttyfd != -1) {
1551
	if (s->ttyfd != -1) {
1548
		fprintf(stderr,
1552
		fprintf(stderr,
1549
		    "You must change your password now and login again!\n");
1553
		    "You must change your password now and login again!\n");
1554
#ifdef WITH_SELINUX
1555
		switch (pid = fork()) {
1556
			case -1:
1557
				fatal("cannot fork");
1558
			case 0:
1559
				setexeccon(NULL);
1560
				break;
1561
			default:
1562
				waitpid(pid, NULL, 0);
1563
				exit(0);
1564
		}
1565
#endif
1550
#ifdef PASSWD_NEEDS_USERNAME
1566
#ifdef PASSWD_NEEDS_USERNAME
1551
		execl(_PATH_PASSWD_PROG, "passwd", s->pw->pw_name,
1567
		execl(_PATH_PASSWD_PROG, "passwd", s->pw->pw_name,
1552
		    (char *)NULL);
1568
		    (char *)NULL);

Return to bug 1889