diff --git a/ChangeLog b/ChangeLog index 8fac7122..0e1c65e4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -15,6 +15,11 @@ * lib/selinux.c: vasprintf requires _GNU_SOURCE to be defined before including stdio.h. * src/chage.c: Cast 3rd date_to_str parameter to a time_t + * src/passwd.c: Add missing cast. + * lib/commonio.c: Avoid multiple statements per line. + * lib/commonio.c: Ignore fclose return value when the file was + open read only or was not changed, or if an error is already + reported. 2011-11-19 Nicolas François diff --git a/lib/commonio.c b/lib/commonio.c index 33b92f35..dbc0990a 100644 --- a/lib/commonio.c +++ b/lib/commonio.c @@ -611,7 +611,8 @@ int commonio_open (struct commonio_db *db, int mode) return 0; } - db->head = db->tail = NULL; + db->head = NULL; + db->tail = NULL; db->cursor = NULL; db->changed = false; @@ -942,7 +943,7 @@ int commonio_close (struct commonio_db *db) db->isopen = false; if (!db->changed || db->readonly) { - fclose (db->fp); + (void) fclose (db->fp); db->fp = NULL; goto success; } @@ -954,7 +955,7 @@ int commonio_close (struct commonio_db *db) memzero (&sb, sizeof sb); if (NULL != db->fp) { if (fstat (fileno (db->fp), &sb) != 0) { - fclose (db->fp); + (void) fclose (db->fp); db->fp = NULL; goto fail; } diff --git a/src/passwd.c b/src/passwd.c index e62d3fd9..d3a9f195 100644 --- a/src/passwd.c +++ b/src/passwd.c @@ -410,9 +410,11 @@ static void check_password (const struct passwd *pw, const struct spwd *sp) * Passwords may only be changed after sp_min time is up. */ if (sp->sp_lstchg > 0) { - time_t last, ok; - last = sp->sp_lstchg * SCALE; - ok = last + (sp->sp_min > 0 ? sp->sp_min * SCALE : 0); + time_t ok; + ok = (time_t) sp->sp_lstchg * SCALE; + if (sp->sp_min > 0) { + ok += (time_t) sp->sp_min * SCALE; + } if (now < ok) { (void) fprintf (stderr,