Author: ed
Date: Tue Jun 21 17:59:51 2011
New Revision: 223367
URL: http://svn.freebsd.org/changeset/base/223367

Log:
  Minor cleanups to ulog-helper:
  
  - Remove unneeded linking against libmd. libulog depends on this
    library, but the ulog-helper tool itself does not.
  
  - Change the comment at the top to mention utmpx instead of utmp, wtmp
    and lastlog.
  
  - Simply use user_from_uid() to translate to a username string.
  
  - Put variable declarations together.

Modified:
  head/libexec/ulog-helper/Makefile
  head/libexec/ulog-helper/ulog-helper.c

Modified: head/libexec/ulog-helper/Makefile
==============================================================================
--- head/libexec/ulog-helper/Makefile   Tue Jun 21 14:31:36 2011        
(r223366)
+++ head/libexec/ulog-helper/Makefile   Tue Jun 21 17:59:51 2011        
(r223367)
@@ -5,7 +5,7 @@ BINOWN= root
 BINMODE=4555
 NO_MAN=
 
-DPADD= ${LIBULOG} ${LIBMD}
-LDADD= -lulog -lmd
+DPADD= ${LIBULOG}
+LDADD= -lulog
 
 .include <bsd.prog.mk>

Modified: head/libexec/ulog-helper/ulog-helper.c
==============================================================================
--- head/libexec/ulog-helper/ulog-helper.c      Tue Jun 21 14:31:36 2011        
(r223366)
+++ head/libexec/ulog-helper/ulog-helper.c      Tue Jun 21 17:59:51 2011        
(r223367)
@@ -36,11 +36,11 @@ __FBSDID("$FreeBSD$");
 
 /*
  * This setuid helper utility writes user login records to disk.
- * Unprivileged processes are not capable of writing records to utmp,
- * wtmp and lastlog, but we do want to allow this for pseudo-terminals.
- * Because a file descriptor to a pseudo-terminal master device can only
- * be obtained by processes using the pseudo-terminal, we expect such a
- * descriptor on stdin.
+ * Unprivileged processes are not capable of writing records to utmpx,
+ * but we do want to allow this for pseudo-terminals.  Because a file
+ * descriptor to a pseudo-terminal master device can only be obtained by
+ * processes using the pseudo-terminal, we expect such a descriptor on
+ * stdin.
  *
  * It uses the real user ID of the calling process to determine the
  * username.  It does allow users to log arbitrary hostnames.
@@ -49,26 +49,22 @@ __FBSDID("$FreeBSD$");
 int
 main(int argc, char *argv[])
 {
-       const char *line;
+       const char *line, *user, *host;
 
        /* Device line name. */
        if ((line = ptsname(STDIN_FILENO)) == NULL)
                return (EX_USAGE);
 
        if ((argc == 2 || argc == 3) && strcmp(argv[1], "login") == 0) {
-               struct passwd *pwd;
-               const char *host = NULL;
-
                /* Username. */
-               pwd = getpwuid(getuid());
-               if (pwd == NULL)
+               user = user_from_uid(getuid(), 1);
+               if (user == NULL)
                        return (EX_OSERR);
 
                /* Hostname. */
-               if (argc == 3)
-                       host = argv[2];
+               host = argc == 3 ? argv[2] : NULL;
 
-               ulog_login(line, pwd->pw_name, host);
+               ulog_login(line, user, host);
                return (EX_OK);
        } else if (argc == 2 && strcmp(argv[1], "logout") == 0) {
                ulog_logout(line);
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to