--- sudo-1.6.8p12/configure.in.login 2006-07-16 15:25:33.000000000 +0200
+++ sudo-1.6.8p12/configure.in 2006-07-16 15:49:08.000000000 +0200
-@@ -357,6 +357,17 @@
+@@ -394,6 +394,18 @@
;;
esac])
-+AC_ARG_WITH(pam-login, [ --with-pam-login enable specific PAM session for sudo -i],
++AC_ARG_WITH(pam-login, [AS_HELP_STRING([--with-pam-login],[enable specific PAM session for sudo -i])],
+[case $with_pam_login in
+ yes) AC_DEFINE(HAVE_PAM_LOGIN)
+ AC_MSG_CHECKING(whether to use PAM login)
+ AC_MSG_RESULT(yes)
+ ;;
-+ no) ;;
-+ *) AC_MSG_ERROR(["--with-pam-login does not take an argument."])
++ no)
++ ;;
++ *) AC_MSG_ERROR(["--with-pam-login does not take an argument."])
+ ;;
+esac])
+
- AC_ARG_WITH(AFS, [ --with-AFS enable AFS support],
+ AC_ARG_WITH(AFS, [AS_HELP_STRING([--with-AFS], [enable AFS support])],
[case $with_AFS in
yes) AC_DEFINE(HAVE_AFS)
---- sudo-1.6.8p12/sudo.c.login 2006-07-16 15:39:26.000000000 +0200
-+++ sudo-1.6.8p12/sudo.c 2006-07-16 15:41:42.000000000 +0200
-@@ -109,7 +109,7 @@
- static struct passwd *get_authpw __P((void));
- extern int sudo_edit __P((int, char **));
- extern void list_matches __P((void));
--extern char **rebuild_env __P((char **, int, int));
-+extern char **rebuild_env __P((char **, int));
- extern char **zero_env __P((char **));
- extern struct passwd *sudo_getpwnam __P((const char *));
- extern struct passwd *sudo_getpwuid __P((uid_t));
-@@ -140,6 +140,7 @@
- #endif /* HAVE_BSD_AUTH_H */
- sigaction_t saved_sa_int, saved_sa_quit, saved_sa_tstp, saved_sa_chld;
- void (*set_perms) __P((int));
+--- sudo-1.6.9p3/sudo.c.orig 2007-08-04 22:30:23.307231082 +0200
++++ sudo-1.6.9p3/sudo.c 2007-08-04 22:31:28.238931329 +0200
+@@ -157,6 +157,7 @@
+ static char *runas_user;
+ static char *runas_group;
+ static struct sudo_nss_list *snl;
+int sudo_mode;
-
- int
-@@ -151,7 +152,6 @@
- int validated;
- int fd;
- int cmnd_status;
-- int sudo_mode;
- int pwflag;
- char **new_environ;
+ /* For getopt(3) */
+ extern char *optarg;
+@@ -169,7 +170,7 @@
+ char **envp;
+ {
+ int sources = 0, validated;
+- int fd, cmnd_status, sudo_mode, pwflag, rc = 0;
++ int fd, cmnd_status, pwflag, rc = 0;
sigaction_t sa;
-@@ -368,7 +368,7 @@
-
- /* Build a new environment that avoids any nasty bits if we have a cmnd. */
- if (ISSET(sudo_mode, MODE_RUN))
-- new_environ = rebuild_env(envp, sudo_mode, ISSET(validated, FLAG_NOEXEC));
-+ new_environ = rebuild_env(envp, ISSET(validated, FLAG_NOEXEC));
- else
- new_environ = envp;
-
+ struct sudo_nss *nss;
+ #if defined(SUDO_DEVEL) && defined(__OpenBSD__)
--- sudo-1.6.8p12/auth/pam.c.login 2006-07-16 15:41:59.000000000 +0200
+++ sudo-1.6.8p12/auth/pam.c 2006-07-16 15:45:15.000000000 +0200
@@ -89,7 +89,12 @@
if (pam_status != PAM_SUCCESS) {
log_error(USE_ERRNO|NO_EXIT|NO_MAIL, "unable to initialize PAM");
return(AUTH_FATAL);
---- sudo-1.6.8p12/env.c.login 2006-07-16 15:40:14.000000000 +0200
-+++ sudo-1.6.8p12/env.c 2006-07-16 15:57:19.000000000 +0200
-@@ -77,7 +77,7 @@
- /*
- * Prototypes
- */
--char **rebuild_env __P((char **, int, int));
-+char **rebuild_env __P((char **, int));
- char **zero_env __P((char **));
- static void insert_env __P((char *, int));
- static char *format_env __P((char *, ...));
-@@ -321,9 +321,8 @@
- * Also adds sudo-specific variables (SUDO_*).
- */
- char **
--rebuild_env(envp, sudo_mode, noexec)
-+rebuild_env(envp, noexec)
- char **envp;
-- int sudo_mode;
- int noexec;
- {
- char **ep, *cp, *ps1;
---- sudo-1.6.8p12/sudo.h.login 2006-07-16 15:59:08.000000000 +0200
-+++ sudo-1.6.8p12/sudo.h 2006-07-16 15:59:38.000000000 +0200
-@@ -251,6 +251,7 @@
+--- sudo-1.6.9p3/sudo.h.orig 2007-07-06 16:14:34.000000000 +0200
++++ sudo-1.6.9p3/sudo.h 2007-08-04 22:32:18.353787210 +0200
+@@ -268,6 +268,7 @@
extern FILE *sudoers_fp;
extern int tgetpass_flags;
extern uid_t timestamp_uid;
+extern int sudo_mode;
-
- extern void (*set_perms) __P((int));
#endif
+ #ifndef errno
+ extern int errno;
--- sudo-1.6.8p12/config.h.in.login 2006-07-16 15:32:09.000000000 +0200
+++ sudo-1.6.8p12/config.h.in 2006-07-16 15:32:56.000000000 +0200
@@ -230,6 +230,9 @@