re-apply patch to fix init.d apparently lost in conversion to git
[debian/sudo] / sudo.c
diff --git a/sudo.c b/sudo.c
index 0e7f6c7efb0401abb7d667bc24279a223880ba0d..0f8e2deb79e832139b5b113a535d969b71438647 100644 (file)
--- a/sudo.c
+++ b/sudo.c
 #include "version.h"
 
 #ifndef lint
-__unused __unused static const char rcsid[] = "$Sudo: sudo.c,v 1.369.2.38 2008/03/05 19:34:49 millert Exp $";
+__unused __unused static const char rcsid[] = "$Sudo: sudo.c,v 1.369.2.39 2008/04/10 17:56:05 millert Exp $";
 #endif /* lint */
 
 /*
@@ -280,7 +280,7 @@ main(argc, argv, envp)
 
        /* Local sudoers file overrides LDAP if we have a match. */
        v = sudoers_lookup(pwflag);
-       if (ISSET(v, VALIDATE_OK))
+       if (validated == VALIDATE_ERROR || ISSET(v, VALIDATE_OK))
            validated = v;
     }
 #else
@@ -526,6 +526,7 @@ init_vars(sudo_mode, envp)
      * "host" is the (possibly fully-qualified) hostname and
      * "shost" is the unqualified form of the hostname.
      */
+    sudo_user.host_fqdn_queried = FALSE;
     nohostname = gethostname(thost, sizeof(thost));
     if (nohostname)
        user_host = user_shost = "localhost";
@@ -535,13 +536,7 @@ init_vars(sudo_mode, envp)
            /* Defer call to set_fqdn() until log_error() is safe. */
            user_shost = user_host;
        } else {
-           if ((p = strchr(user_host, '.'))) {
-               *p = '\0';
-               user_shost = estrdup(user_host);
-               *p = '.';
-           } else {
-               user_shost = user_host;
-           }
+           user_shost = user_host;
        }
     }
 
@@ -1217,6 +1212,7 @@ set_fqdn()
     } else {
        user_shost = user_host;
     }
+    sudo_user.host_fqdn_queried = TRUE;
 }
 
 /*