* 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.
This commit is contained in:
nekral-guest 2009-04-23 11:21:01 +00:00
parent 77c1b2a369
commit 87e15d7b82
2 changed files with 26 additions and 12 deletions

View File

@ -1,3 +1,13 @@
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).

View File

@ -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);
}