]> diplodocus.org Git - nmh/blobdiff - sbr/dtime.c
Fix invalid pointer arithmetic.
[nmh] / sbr / dtime.c
index dd6802b289b31f8a4f066c2b23165a7dc46d06b3..5e0fdc0a3fb496a4f8404da998d793d4d66ed9f9 100644 (file)
@@ -345,14 +345,17 @@ dmktime (struct tws *tw)
     while (--mon)
        result += dmsize[mon - 1];
     result += mday - 1;
-    result = 24 * result + hour;
-    result = 60 * result + min;
-    result = 60 * result + sec;
+    result *= 24; /* Days to hours. */
+    result += hour;
+    result *= 60; /* Hours to minutes. */
+    result += min;
+    result *= 60; /* Minutes to seconds. */
+    result += sec;
     result -= 60 * tw->tw_zone;
     if (tw->tw_flags & TW_DST)
-       result -= 60 * 60;
+       result -= 60 * 60; /* One hour. */
 
-    return (tw->tw_clock = result);
+    return tw->tw_clock = result;
 }
 
 
@@ -405,6 +408,6 @@ twsort (struct tws *tw1, struct tws *tw2)
     if (tw2->tw_clock == 0)
        dmktime (tw2);
 
-    return ((c1 = tw1->tw_clock) > (c2 = tw2->tw_clock) ? 1
-           : c1 == c2 ? 0 : -1);
+    return (c1 = tw1->tw_clock) > (c2 = tw2->tw_clock) ? 1
+           : c1 == c2 ? 0 : -1;
 }