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' ||