Module Name:    src
Committed By:   christos
Date:           Fri Feb 26 02:45:43 UTC 2021

Modified Files:
        src/usr.bin/who: utmpentry.c

Log Message:
PR/56013: Kouichi Hashikawa: Move setutent/setutxent right before the loops.


To generate a diff of this commit:
cvs rdiff -u -r1.21 -r1.22 src/usr.bin/who/utmpentry.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/who/utmpentry.c
diff -u src/usr.bin/who/utmpentry.c:1.21 src/usr.bin/who/utmpentry.c:1.22
--- src/usr.bin/who/utmpentry.c:1.21	Sat Oct  5 19:35:57 2019
+++ src/usr.bin/who/utmpentry.c	Thu Feb 25 21:45:43 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: utmpentry.c,v 1.21 2019/10/05 23:35:57 mrg Exp $	*/
+/*	$NetBSD: utmpentry.c,v 1.22 2021/02/26 02:45:43 christos Exp $	*/
 
 /*-
  * Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: utmpentry.c,v 1.21 2019/10/05 23:35:57 mrg Exp $");
+__RCSID("$NetBSD: utmpentry.c,v 1.22 2021/02/26 02:45:43 christos Exp $");
 #endif
 
 #include <sys/stat.h>
@@ -95,14 +95,7 @@ setup(const char *fname)
 	struct stat st;
 	const char *sfname;
 
-	if (fname == NULL) {
-#ifdef SUPPORT_UTMPX
-		setutxent();
-#endif
-#ifdef SUPPORT_UTMP
-		setutent();
-#endif
-	} else {
+	if (fname != NULL) {
 		size_t len = strlen(fname);
 		if (len == 0)
 			errx(1, "Filename cannot be 0 length.");
@@ -133,9 +126,9 @@ setup(const char *fname)
 			what &= ~1;
 		} else {
 			if (timespeccmp(&st.st_mtimespec, &utmpxtime, >))
-			    utmpxtime = st.st_mtimespec;
+				utmpxtime = st.st_mtimespec;
 			else
-			    what &= ~1;
+				what &= ~1;
 		}
 	}
 #endif
@@ -204,10 +197,11 @@ getutentries(const char *fname, struct u
 #endif
 
 #ifdef SUPPORT_UTMPX
+	setutxent();
 	while ((what & 1) && (utx = getutxent()) != NULL) {
 		if (fname == NULL && ((1 << utx->ut_type) & etype) == 0)
 			continue;
-		if ((ep = calloc(1, sizeof(struct utmpentry))) == NULL) {
+		if ((ep = calloc(1, sizeof(*ep))) == NULL) {
 			warn(NULL);
 			return 0;
 		}
@@ -218,6 +212,7 @@ getutentries(const char *fname, struct u
 #endif
 
 #ifdef SUPPORT_UTMP
+	setutent();
 	if ((etype & (1 << USER_PROCESS)) != 0) {
 		while ((what & 2) && (ut = getutent()) != NULL) {
 			if (fname == NULL && (*ut->ut_name == '\0' ||

Reply via email to