]> granicus.if.org Git - sudo/commitdiff
getprpwuid is broken in HP-UX 10.20 at least (it sleeps for 2 minutes if the
authorTodd C. Miller <Todd.Miller@courtesan.com>
Wed, 21 Oct 1998 23:50:10 +0000 (23:50 +0000)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Wed, 21 Oct 1998 23:50:10 +0000 (23:50 +0000)
shadow files don't exist).

check.c
compat.h
config.h.in
configure.in
getspwuid.c
secureware.c
sudo.c
tgetpass.c

diff --git a/check.c b/check.c
index 371482cf77064b23fae1cceadeba52abeb96dd72..c2d3da5d45199a428c3a05824b3df6327b8267b1 100644 (file)
--- a/check.c
+++ b/check.c
@@ -583,10 +583,10 @@ static void check_passwd()
            return;             /* if the passwd is correct return() */
 #    endif /* HAVE_GETAUTHUID */
 
-#    ifdef HAVE_GETPRPWUID
+#    ifdef HAVE_GETPRPWNAM
        if (check_secureware(pass))
            return;             /* if the passwd is correct return() */
-#    endif /* HAVE_GETPRPWUID */
+#    endif /* HAVE_HAVE_GETPRPWNAM */
 
        /* Normal UN*X password check */
        if (!strcmp(user_passwd, (char *) crypt(pass, user_passwd)))
index 3721be35a289ce367d29458cfc669da521c9ab3d..b4e8dd288df386a8cdd4b25cd174a2e2a0c3d258 100644 (file)
--- a/compat.h
+++ b/compat.h
 #  undef _PASSWD_LEN
 #  define _PASSWD_LEN          256
 #else
-#  ifdef  HAVE_GETPRPWUID
+#  ifdef  HAVE_GETPRPWNAM
 #    undef _PASSWD_LEN
 #    define _PASSWD_LEN                AUTH_MAX_PASSWD_LENGTH
 #  else
 #        endif /* SHADOW_TYPE != SPW_NONE */
 #      endif /* PASS_MAX */
 #    endif /* !_PASSWD_LEN */
-#  endif /* HAVE_KERB4 || HAVE_AFS || HAVE_DCE || HAVE_SKEY || HAVE_OPIE */
-#endif /* HAVE_GETPRPWUID */
+#  endif /* HAVE_GETPRPWNAM */
+#endif /* HAVE_KERB4 || HAVE_AFS || HAVE_DCE || HAVE_SKEY || HAVE_OPIE */
 
 /*
  * Some OS's lack these
index aabd1ee44c8ba0cd50462935419fbda1d4c6b2f9..9689b1e22025a16c868a7f47b1f1dfc64e9421b6 100644 (file)
 /* Define if you have getspnam(3).  [SVR4-style shadow passwords] */
 #undef HAVE_GETSPNAM
 
-/* Define if you have getprpwuid(3).  [SecureWare-style shadow passwords] */
-#undef HAVE_GETPRPWUID
+/* Define if you have getprpwnam(3).  [SecureWare-style shadow passwords] */
+#undef HAVE_GETPRPWNAM
 
 /* Define if you have getspwuid(3).  [HP-UX <= 9.X shadow passwords] */
 #undef HAVE_GETSPWUID
index aecbfb4554cb0176c16c3c146c194ffe94a0bee4..d0bbb167ff0bb1307b6e72d7182e7f31a4cac11a 100644 (file)
@@ -982,7 +982,7 @@ case "$host" in
                ;;
     *-*-hiuxmpp*)
                if test "$CHECKSHADOW" = "true"; then
-                   AC_CHECK_LIB(sec, getprpwuid, AC_DEFINE(HAVE_GETPRPWUID) [SUDO_LIBS="${SUDO_LIBS} -lsec"; LIBS="${LIBS} -lsec"; SECUREWARE=1], AC_CHECK_LIB(security, getprpwuid, AC_DEFINE(HAVE_GETPRPWUID) [SUDO_LIBS="${SUDO_LIBS} -lsecurity"; LIBS="${LIBS} -lsecurity"; SECUREWARE=1]))
+                   AC_CHECK_LIB(sec, getprpwnam, AC_DEFINE(HAVE_GETPRPWNAM) [SUDO_LIBS="${SUDO_LIBS} -lsec"; LIBS="${LIBS} -lsec"; SECUREWARE=1], AC_CHECK_LIB(security, getprpwnam, AC_DEFINE(HAVE_GETPRPWNAM) [SUDO_LIBS="${SUDO_LIBS} -lsecurity"; LIBS="${LIBS} -lsecurity"; SECUREWARE=1]))
                    CHECKSHADOW="false"
                fi
                ;;
@@ -992,7 +992,7 @@ case "$host" in
                #STATIC_SUDO=true
 
                if test "$CHECKSHADOW" = "true"; then
-                   AC_CHECK_LIB(sec, getprpwuid, AC_DEFINE(HAVE_GETPRPWUID) [SUDO_LIBS="${SUDO_LIBS} -lsec"; LIBS="${LIBS} -lsec"; SECUREWARE=1])
+                   AC_CHECK_LIB(sec, getprpwnam, AC_DEFINE(HAVE_GETPRPWNAM) [SUDO_LIBS="${SUDO_LIBS} -lsec"; LIBS="${LIBS} -lsec"; SECUREWARE=1])
                    CHECKSHADOW="false"
                fi
 
@@ -1077,7 +1077,7 @@ case "$host" in
                SUDO_LDFLAGS="${SUDO_LDFLAGS} -Wl,-no_library_replacement"
 
                if test "$CHECKSHADOW" = "true"; then
-                   AC_CHECK_LIB(security, getprpwuid, AC_DEFINE(HAVE_GETPRPWUID) [SUDO_LIBS="${SUDO_LIBS} -lsecurity"; LIBS="${LIBS} -lsecurity"; SECUREWARE=1])
+                   AC_CHECK_LIB(security, getprpwnam, AC_DEFINE(HAVE_GETPRPWNAM) [SUDO_LIBS="${SUDO_LIBS} -lsecurity"; LIBS="${LIBS} -lsecurity"; SECUREWARE=1])
                    AC_MSG_CHECKING([for broken /usr/include/prot.h])
                    AC_TRY_COMPILE([
 #include <sys/types.h>
@@ -1123,7 +1123,7 @@ case "$host" in
                fi
 
                if test "$CHECKSHADOW" = "true"; then
-                   AC_CHECK_LIB(sec, getprpwuid, AC_DEFINE(HAVE_GETPRPWUID) [SUDO_LIBS="${SUDO_LIBS} -lprot"; LIBS="${LIBS} -lprot"; OSDEFS="${OSDEFS} -D_AUDIT -D_ACL -DSecureWare"; SECUREWARE=1])
+                   AC_CHECK_LIB(sec, getprpwnam, AC_DEFINE(HAVE_GETPRPWNAM) [SUDO_LIBS="${SUDO_LIBS} -lprot"; LIBS="${LIBS} -lprot"; OSDEFS="${OSDEFS} -D_AUDIT -D_ACL -DSecureWare"; SECUREWARE=1])
                    CHECKSHADOW="false"
                fi
                ;;
@@ -1153,7 +1153,7 @@ case "$host" in
                ;;
     *-*-sco*)
                if test "$CHECKSHADOW" = "true"; then
-                   AC_CHECK_LIB(prot, getprpwuid, AC_DEFINE(HAVE_GETPRPWUID) [SUDO_LIBS="${SUDO_LIBS} -lprot -lx"; LIBS="${LIBS} -lprot -lx"; SECUREWARE=1])
+                   AC_CHECK_LIB(prot, getprpwnam, AC_DEFINE(HAVE_GETPRPWNAM) [SUDO_LIBS="${SUDO_LIBS} -lprot -lx"; LIBS="${LIBS} -lprot -lx"; SECUREWARE=1])
                    CHECKSHADOW="false"
                fi
                ;;
@@ -1197,7 +1197,7 @@ if test "$CHECKSHADOW" = "true"; then
     AC_CHECK_FUNC(getspnam, AC_DEFINE(HAVE_GETSPNAM) [CHECKSHADOW="false"])
 fi
 if test "$CHECKSHADOW" = "true"; then
-    AC_CHECK_FUNC(getprpwuid, AC_DEFINE(HAVE_GETPRPWUID) [CHECKSHADOW="false"; SECUREWARE=1], AC_CHECK_LIB(sec, getprpwuid, AC_DEFINE(HAVE_GETPRPWUID) [CHECKSHADOW="false"; SECUREWARE=1; SUDO_LIBS="${SUDO_LIBS} -lsec"; LIBS="${LIBS} -lsec"], AC_CHECK_LIB(security, getprpwuid, AC_DEFINE(HAVE_GETPRPWUID) [CHECKSHADOW="false"; SECUREWARE=1; SUDO_LIBS="${SUDO_LIBS} -lsecurity"; LIBS="${LIBS} -lsecurity"], AC_CHECK_LIB(prot, getprpwuid, AC_DEFINE(HAVE_GETPRPWUID) [CHECKSHADOW="false"; SECUREWARE=1; SUDO_LIBS="${SUDO_LIBS} -lprot"; LIBS="${LIBS} -lprot"]))))
+    AC_CHECK_FUNC(getprpwnam, AC_DEFINE(HAVE_GETPRPWNAM) [CHECKSHADOW="false"; SECUREWARE=1], AC_CHECK_LIB(sec, getprpwnam, AC_DEFINE(HAVE_GETPRPWNAM) [CHECKSHADOW="false"; SECUREWARE=1; SUDO_LIBS="${SUDO_LIBS} -lsec"; LIBS="${LIBS} -lsec"], AC_CHECK_LIB(security, getprpwnam, AC_DEFINE(HAVE_GETPRPWNAM) [CHECKSHADOW="false"; SECUREWARE=1; SUDO_LIBS="${SUDO_LIBS} -lsecurity"; LIBS="${LIBS} -lsecurity"], AC_CHECK_LIB(prot, getprpwnam, AC_DEFINE(HAVE_GETPRPWNAM) [CHECKSHADOW="false"; SECUREWARE=1; SUDO_LIBS="${SUDO_LIBS} -lprot"; LIBS="${LIBS} -lprot"]))))
 fi
 
 dnl
index e9546a58bbad0ea9b9b1f05b39323919b783375b..70a8e9d9f606dd6efbe14414b945b3a2bde25589 100644 (file)
@@ -53,14 +53,14 @@ static char rcsid[] = "$Id$";
 #ifdef HAVE_GETSPNAM
 #  include <shadow.h>
 #endif /* HAVE_GETSPNAM */
-#ifdef HAVE_GETPRPWUID
+#ifdef HAVE_GETPRPWNAM
 #  ifdef __hpux
 #    include <hpsecurity.h>
 #  else
 #    include <sys/security.h>
 #  endif /* __hpux */
 #  include <prot.h>
-#endif /* HAVE_GETPRPWUID */
+#endif /* HAVE_GETPRPWNAM */
 #ifdef HAVE_GETPWANAM
 #  include <sys/label.h>
 #  include <sys/audit.h>
@@ -85,9 +85,9 @@ extern char *strdup     __P((const char *));
 /*
  * Global variables (yuck)
  */
-#if defined(HAVE_GETPRPWUID) && defined(__alpha)
+#if defined(HAVE_GETPRPWNAM) && defined(__alpha)
 int crypt_type = -1;
-#endif /* HAVE_GETPRPWUID && __alpha */
+#endif /* HAVE_GETPRPWNAM && __alpha */
 
 
 /*
@@ -136,11 +136,11 @@ static char *sudo_getshell(pw_ent)
 static char *sudo_getepw(pw_ent)
     struct passwd *pw_ent;
 {
-#ifdef HAVE_GETPRPWUID
+#ifdef HAVE_GETPRPWNAM
     {
        struct pr_passwd *spw_ent;
 
-       spw_ent = getprpwuid(pw_ent->pw_uid);
+       spw_ent = getprpwnam(pw_ent->pw_name);
        if (spw_ent != NULL && spw_ent->ufld.fd_encrypt != NULL) {
 #  ifdef __alpha
            crypt_type = spw_ent -> ufld.fd_oldcrypt;
@@ -148,7 +148,7 @@ static char *sudo_getepw(pw_ent)
            return(spw_ent -> ufld.fd_encrypt);
        }
     }
-#endif /* HAVE_GETPRPWUID */
+#endif /* HAVE_GETPRPWNAM */
 #ifdef HAVE_GETSPNAM
     {
        struct spwd *spw_ent;
index 47c6fca89222bc67a80c27bcd527ef3d063d85bb..23bf234f9b0a844875a2013105a2f8e8f7ebc79a 100644 (file)
@@ -30,7 +30,7 @@ static char rcsid[] = "$Id$";
 
 #include "config.h"
 
-#ifdef HAVE_GETPRPWUID
+#ifdef HAVE_GETPRPWNAM
 
 #include <stdio.h>
 #ifdef STDC_HEADERS
@@ -84,4 +84,4 @@ int check_secureware(pass)
        return(0);
 }
 
-#endif /* HAVE_GETPRPWUID */
+#endif /* HAVE_GETPRPWNAM */
diff --git a/sudo.c b/sudo.c
index 78f81f4594fd758079471d40230f7b1099f6bad4..a04b08ac55efa865e855a20a57afff7a61453658 100644 (file)
--- a/sudo.c
+++ b/sudo.c
@@ -183,12 +183,12 @@ int main(argc, argv)
     int sudo_mode = MODE_RUN;
     extern char ** environ;
 
-#if defined(HAVE_GETPRPWUID) && defined(HAVE_SET_AUTH_PARAMETERS)
+#if defined(HAVE_GETPRPWNAM) && defined(HAVE_SET_AUTH_PARAMETERS)
     (void) set_auth_parameters(argc, argv);
 #  ifdef HAVE_INITPRIVS
     initprivs();
 #  endif
-#endif /* HAVE_GETPRPWUID && HAVE_SET_AUTH_PARAMETERS */
+#endif /* HAVE_GETPRPWNAM && HAVE_SET_AUTH_PARAMETERS */
 
     Argv = argv;
     Argc = argc;
index a6c4d01e5f46104f98f55e808ff7a0d61913ef37..d417b8ca19d96dabe5a2c2ef13259e19688fc28b 100644 (file)
@@ -69,14 +69,14 @@ static char rcsid[] = "$Id$";
 #include <sys/ioctl.h>
 #endif /* HAVE_TERMIO_H */
 #endif /* HAVE_TERMIOS_H */
-#ifdef HAVE_GETPRPWUID
+#ifdef HAVE_GETPRPWNAM
 #  ifdef __hpux
 #    include <hpsecurity.h>
 #  else
 #    include <sys/security.h>
 #  endif /* __hpux */
 #  include <prot.h>                    /* for AUTH_MAX_PASSWD_LENGTH */
-#endif /* HAVE_GETPRPWUID */
+#endif /* HAVE_GETPRPWNAM */
 
 #include <pathnames.h>
 #include "compat.h"