Blob Blame History Raw
diff -up openssh-5.8p1/session.c.pwchange openssh-5.8p1/session.c
--- openssh-5.8p1/session.c.pwchange	2011-03-31 17:54:18.637695183 +0200
+++ openssh-5.8p1/session.c	2011-03-31 17:56:12.281684766 +0200
@@ -1552,12 +1552,17 @@ do_pwchange(Session *s)
 	if (s->ttyfd != -1) {
 		fprintf(stderr,
 		    "You must change your password now and login again!\n");
+#ifdef __linux__
+		execl("/bin/sh", "sh", "-c", _PATH_PASSWD_PROG, s->pw->pw_name,
+		    (char *)NULL);
+#else
 #ifdef PASSWD_NEEDS_USERNAME
 		execl(_PATH_PASSWD_PROG, "passwd", s->pw->pw_name,
 		    (char *)NULL);
 #else
 		execl(_PATH_PASSWD_PROG, "passwd", (char *)NULL);
 #endif
+#endif
 		perror("passwd");
 	} else {
 		fprintf(stderr,