← Commit list

a5c5dc6f0

Denys Vlasenko
Denys Vlasenko
2019-06-07
SUCCESS Duration: 150s

Subject

passwd: do not set 0 as date of last password change, closes 11951

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

libbb/update_passwd.c+7 -1
@@ -270,10 +270,16 @@ int FAST_FUNC update_passwd(const char *filename,
if (shadow && *cp == ':') {
/* /etc/shadow's field 3 (passwd change date) needs updating */
/* move past old change date */
+ unsigned time_days = (unsigned long)(time(NULL)) / (24*60*60);
+
+ if (time_days == 0) {
+ /* 0 as change date has special meaning, avoid it */
+ time_days = 1;
+ }
cp = strchrnul(cp + 1, ':');
/* "name:" + "new_passwd" + ":" + "change date" + ":rest of line" */
fprintf(new_fp, "%s%s:%u%s\n", name_colon, new_passwd,
- (unsigned)(time(NULL)) / (24*60*60), cp);
+ time_days, cp);
} else {
/* "name:" + "new_passwd" + ":rest of line" */
fprintf(new_fp, "%s%s%s\n", name_colon, new_passwd, cp);