Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Jun 2011 17:59:51 +0000 (UTC)
From:      Ed Schouten <ed@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r223367 - head/libexec/ulog-helper
Message-ID:  <201106211759.p5LHxpIm010731@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201106211759.p5LHxpIm010731>