From 87e15d7b8241f64d3142d8de0f72f5eeac75558a Mon Sep 17 00:00:00 2001 From: nekral-guest Date: Thu, 23 Apr 2009 11:21:01 +0000 Subject: [PATCH] * src/lastlog.c: Use EXIT_FAILURE / EXIT_SUCCESS for exit() * src/lastlog.c: Added splint annotations. * src/lastlog.c: Avoid global pwent. * src/lastlog.c: Cast ID to ulongs and use ulong formats for IDs. * src/lastlog.c: Avoid assignment in comparisons. * src/lastlog.c: Ignore fclose() return value since the file is only opened for reading. --- ChangeLog | 10 ++++++++++ src/lastlog.c | 28 ++++++++++++++++------------ 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index a383a4fd..afd9522e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2009-04-22 Nicolas François + + * src/lastlog.c: Use EXIT_FAILURE / EXIT_SUCCESS for exit() + * src/lastlog.c: Added splint annotations. + * src/lastlog.c: Avoid global pwent. + * src/lastlog.c: Cast ID to ulongs and use ulong formats for IDs. + * src/lastlog.c: Avoid assignment in comparisons. + * src/lastlog.c: Ignore fclose() return value since the file is + only opened for reading. + 2009-04-22 Nicolas François * src/newgrp.c: Added assertion to guide splint (and me). diff --git a/src/lastlog.c b/src/lastlog.c index a8ef745b..6203e668 100644 --- a/src/lastlog.c +++ b/src/lastlog.c @@ -70,7 +70,6 @@ static struct stat statbuf; /* fstat buffer for file size */ static bool uflg = false; /* print only an user of range of users */ static bool tflg = false; /* print is restricted to most recent days */ static bool bflg = false; /* print excludes most recent days */ -static struct passwd *pwent; #define NOW (time ((time_t *) 0)) @@ -84,10 +83,10 @@ static void usage (void) " -t, --time DAYS print only lastlog records more recent than DAYS\n" " -u, --user LOGIN print lastlog record of the specified LOGIN\n" "\n"), stderr); - exit (1); + exit (EXIT_FAILURE); } -static void print_one (const struct passwd *pw) +static void print_one (/*@null@*/const struct passwd *pw) { static bool once = false; char *cp; @@ -116,9 +115,9 @@ static void print_one (const struct passwd *pw) */ if (fread ((char *) &ll, sizeof (ll), 1, lastlogfile) != 1) { fprintf (stderr, - _("lastlog: Failed to get the entry for UID %d\n"), - pw->pw_uid); - exit (1); + _("lastlog: Failed to get the entry for UID %lu\n"), + (unsigned long int)pw->pw_uid); + exit (EXIT_FAILURE); } } else { /* Outsize of the lastlog file. @@ -173,6 +172,7 @@ static void print_one (const struct passwd *pw) static void print (void) { + const struct passwd *pwent; if (uflg && has_umin && has_umax && (umin == umax)) { print_one (getpwuid ((uid_t)umin)); } else { @@ -222,6 +222,8 @@ int main (int argc, char **argv) bflg = true; break; case 'u': + { + const struct passwd *pwent; /* * The user can be: * - a login name @@ -244,10 +246,11 @@ int main (int argc, char **argv) fprintf (stderr, _("lastlog: Unknown user or range: %s\n"), optarg); - exit (1); + exit (EXIT_FAILURE); } } break; + } default: usage (); break; @@ -261,9 +264,10 @@ int main (int argc, char **argv) } } - if ((lastlogfile = fopen (LASTLOG_FILE, "r")) == (FILE *) 0) { + lastlogfile = fopen (LASTLOG_FILE, "r"); + if (NULL == lastlogfile) { perror (LASTLOG_FILE); - exit (1); + exit (EXIT_FAILURE); } /* Get the lastlog size */ @@ -271,12 +275,12 @@ int main (int argc, char **argv) fprintf (stderr, _("lastlog: Cannot get the size of %s: %s\n"), LASTLOG_FILE, strerror (errno)); - exit (1); + exit (EXIT_FAILURE); } print (); - fclose (lastlogfile); - exit (0); + (void) fclose (lastlogfile); + exit (EXIT_SUCCESS); }