]> granicus.if.org Git - sudo/commitdiff
now uses sudo_pw_ent
authorTodd C. Miller <Todd.Miller@courtesan.com>
Tue, 21 Nov 1995 02:27:45 +0000 (02:27 +0000)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Tue, 21 Nov 1995 02:27:45 +0000 (02:27 +0000)
logging.c
sudo.h

index 23972e77a072305a88db04aa6ebb9a82c6997b10..82c6c156461b9add63ccb7467786f5369351c9af 100644 (file)
--- a/logging.c
+++ b/logging.c
@@ -58,6 +58,7 @@ static char rcsid[] = "$Id$";
 #if defined(HAVE_MALLOC_H) && !defined(STDC_HEADERS)
 #include <malloc.h>   
 #endif /* HAVE_MALLOC_H && !STDC_HEADERS */
+#include <pwd.h>
 #include <signal.h>
 #include <sys/types.h>
 #include <sys/time.h>
@@ -158,7 +159,8 @@ void log_error(code)
      * necesary for mail and file logs.
      */
     now = time((time_t) 0);
-    (void) sprintf(logline, "%19.19s : %8.8s : ", ctime(&now), user);
+    (void) sprintf(logline, "%19.19s : %8.8s : ", ctime(&now),
+                  sudo_pw_ent->pw_name);
 
     /*
      * we need a pointer to the end of logline (XXX - use a #define not 33)
@@ -192,7 +194,7 @@ void log_error(code)
        case GLOBAL_NO_PW_ENT:
            (void) sprintf(p,
                "There is no passwd entry for uid %ld (TTY=%s).  ",
-               (long) uid, tty);
+               (long) sudo_pw_ent->pw_uid, tty);
            break;
 
        case PASSWORD_NOT_CORRECT:
@@ -317,9 +319,10 @@ void log_error(code)
            *tmp = '\0';
 
            if (count == 0)
-               syslog(pri, "%8.8s : %s", user, p);
+               syslog(pri, "%8.8s : %s", sudo_pw_ent->pw_name, p);
            else
-               syslog(pri, "%8.8s : (command continued) %s", user, p);
+               syslog(pri, "%8.8s : (command continued) %s",
+                      sudo_pw_ent->pw_name, p);
 
            *tmp = save;                        /* restore saved character */
 
@@ -328,9 +331,10 @@ void log_error(code)
                ;
        } else {
            if (count == 0)
-               syslog(pri, "%8.8s : %s", user, p);
+               syslog(pri, "%8.8s : %s", sudo_pw_ent->pw_name, p);
            else
-               syslog(pri, "%8.8s : (command continued) %s", user, p);
+               syslog(pri, "%8.8s : (command continued) %s",
+                      sudo_pw_ent->pw_name, p);
        }
     }
     closelog();
@@ -536,18 +540,18 @@ void inform_user(code)
        case VALIDATE_NO_USER:
            (void) fprintf(stderr,
                "%s is not in the sudoers file.  This incident will be reported.\n\n",
-               user);
+               sudo_pw_ent->pw_name);
            break;
 
        case VALIDATE_NOT_OK:
            if (cmnd_args)
                (void) fprintf(stderr,
                    "Sorry, user %s is not allowed to execute \"%s %s\" on %s.\n\n",
-                   user, cmnd, cmnd_args, host);
+                   sudo_pw_ent->pw_name, cmnd, cmnd_args, host);
            else
                (void) fprintf(stderr,
                    "Sorry, user %s is not allowed to execute \"%s\" on %s.\n\n",
-                   user, cmnd, host);
+                   sudo_pw_ent->pw_name, cmnd, host);
            break;
 
        case VALIDATE_ERROR:
diff --git a/sudo.h b/sudo.h
index fe838be4a90fb3796e23c53000c868a12677d751..40e62d5a074577fe83187ae8c08f9806c61d04e5 100644 (file)
--- a/sudo.h
+++ b/sudo.h
@@ -158,6 +158,7 @@ int validate                __P((int));
 void set_perms         __P((int));
 void remove_timestamp  __P((void));
 void load_interfaces   __P((void));
+struct passwd *sudo_getpwuid   __P((uid_t));
 
 
 /*
@@ -165,18 +166,15 @@ void load_interfaces      __P((void));
  * to be extern'ed here if this is main...
  */
 #ifndef MAIN
-extern uid_t uid;
 extern char host[];
 extern char cwd[];
 extern struct interface *interfaces;
 extern int num_interfaces;
-extern char *user;
+extern struct passwd *sudo_pw_ent;
 extern char *tty;
-extern char *epasswd;
 extern char *cmnd;
 extern char *cmnd_args;
 extern char *prompt;
-extern char *shell;
 extern struct stat cmnd_st;
 extern int Argc;
 extern char **Argv;