+2009-04-22 Nicolas François <nicolas.francois@centraliens.net>
+
+ * 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 <nicolas.francois@centraliens.net>
* src/newgrp.c: Added assertion to guide splint (and me).
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))
" -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;
*/
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.
static void print (void)
{
+ const struct passwd *pwent;
if (uflg && has_umin && has_umax && (umin == umax)) {
print_one (getpwuid ((uid_t)umin));
} else {
bflg = true;
break;
case 'u':
+ {
+ const struct passwd *pwent;
/*
* The user can be:
* - a login name
fprintf (stderr,
_("lastlog: Unknown user or range: %s\n"),
optarg);
- exit (1);
+ exit (EXIT_FAILURE);
}
}
break;
+ }
default:
usage ();
break;
}
}
- 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 */
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);
}