"referenced entity .* not found" message fixed to be fatal
[tac_plus.git] / pw.c
diff --git a/pw.c b/pw.c
index 96c761e..a749262 100644 (file)
--- a/pw.c
+++ b/pw.c
@@ -1,4 +1,4 @@
-/* 
+/*
    Copyright (c) 1995-1998 by Cisco systems, Inc.
 
    Permission to use, copy, modify, and distribute this software for
 /* Tacacs+ password lookup routine for those systems which don't have
    setpwfile. Not for use on /etc/passwd files */
 
+
 #include "tac_plus.h"
+
+#include <stdlib.h>
 #include <pwd.h>
 #include <string.h>
 
+#include "pw.h"
+#include "report.h"
+#include "main.h"
+
+
 static struct passwd pw_passwd;
 
+struct passwd *tac_passwd_lookup TAC_ARGS((const char *name, const char *file));
+
 struct passwd *
 tac_passwd_lookup(name, file)
-    char *name, *file;
+const char *name;
+const char *file;
 {
     FILE *passwd_fp = NULL;
 
@@ -44,10 +55,10 @@ tac_passwd_lookup(name, file)
 
     if (passwd_fp) {
        if (debug & DEBUG_PASSWD_FLAG)
-           report(LOG_DEBUG, "tac_passwd_lookup: open %s %d", 
+           report(LOG_DEBUG, "tac_passwd_lookup: open %s %d",
                   file, fileno(passwd_fp));
     } else {
-       report(LOG_ERR, "tac_passwd_lookup: cannot open file %s for reading", 
+       report(LOG_ERR, "tac_passwd_lookup: cannot open file %s for reading",
               file);
        return(NULL);
     }
@@ -113,16 +124,18 @@ tac_passwd_lookup(name, file)
 
         pw_passwd.pw_name    = uname;
         pw_passwd.pw_passwd  = password;
-#ifndef NO_PWAGE
+#ifdef HAVE_PASSWD_PW_AGE
         pw_passwd.pw_age     = NULL;
+#endif
+#ifdef HAVE_PASSWD_PW_COMMENT
         pw_passwd.pw_comment = NULL;
-#endif /* NO_PWAGE */
+#endif
         pw_passwd.pw_gecos   = gecos;
         pw_passwd.pw_dir     = homedir;
         pw_passwd.pw_shell   = shell;
 
        if (debug & DEBUG_PASSWD_FLAG)
-           report(LOG_DEBUG, "tac_passwd_lookup: close %s %d", 
+           report(LOG_DEBUG, "tac_passwd_lookup: close %s %d",
                   file, fileno(passwd_fp));
        fclose(passwd_fp);
        return(&pw_passwd);
@@ -130,7 +143,7 @@ tac_passwd_lookup(name, file)
 
     /* no match found */
     if (debug & DEBUG_PASSWD_FLAG)
-           report(LOG_DEBUG, "tac_passwd_lookup: close %s %d", 
+           report(LOG_DEBUG, "tac_passwd_lookup: close %s %d",
                   file, fileno(passwd_fp));
     fclose(passwd_fp);
     return(NULL);