]> granicus.if.org Git - shadow/commitdiff
* src/passwd.c: Overflow when computing the number of days based
authornekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Thu, 14 Jul 2011 14:03:19 +0000 (14:03 +0000)
committernekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Thu, 14 Jul 2011 14:03:19 +0000 (14:03 +0000)
on the scaling. Use of long long needed.

ChangeLog
src/passwd.c

index 30c639a567f6b5b25e26ebd0def0959e6f93ce03..183325fef26cdbb9e24d02961f75c74a28bcded6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-07-14  Nicolas François  <nicolas.francois@centraliens.net>
+
+       * src/passwd.c: Overflow when computing the number of days based
+       on the scaling. Use of long long needed.
+
 2011-07-14  Nicolas François  <nicolas.francois@centraliens.net>
 
        * NEWS, lib/commonio.h, lib/commonio.c: Additional messages to
index 2a357f2a119c87053b3d6dfb3ca34e43c97fd253..be70d51de899e269cddf3ca7483682ab3117bba7 100644 (file)
@@ -458,14 +458,14 @@ static void print_status (const struct passwd *pw)
 
        sp = getspnam (pw->pw_name); /* local, no need for xgetspnam */
        if (NULL != sp) {
-               (void) printf ("%s %s %s %ld %ld %ld %ld\n",
+               (void) printf ("%s %s %s %lld %lld %lld %lld\n",
                               pw->pw_name,
                               pw_status (sp->sp_pwdp),
                               date_to_str (sp->sp_lstchg * SCALE),
-                              (sp->sp_min * SCALE) / DAY,
-                              (sp->sp_max * SCALE) / DAY,
-                              (sp->sp_warn * SCALE) / DAY,
-                              (sp->sp_inact * SCALE) / DAY);
+                              ((long long)sp->sp_min * SCALE) / DAY,
+                              ((long long)sp->sp_max * SCALE) / DAY,
+                              ((long long)sp->sp_warn * SCALE) / DAY,
+                              ((long long)sp->sp_inact * SCALE) / DAY);
        } else {
                (void) printf ("%s %s\n",
                               pw->pw_name, pw_status (pw->pw_passwd));