8dc1d43
--- webalizer-2.21-02/webalizer.c		2009-01-13 06:35:54.000000000 +0100
8dc1d43
+++ webalizer-2.21-02/webalizer.c.underrun	2009-03-29 14:16:21.000000000 +0200
8dc1d43
@@ -737,10 +737,16 @@
cvsdist 2bbf987
          rec_sec =atoi(&log_rec.datetime[19]);   /* get second number       */
cvsdist 2bbf987
 
cvsdist 2bbf987
          /* Kludge for Netscape server time (0-24?) error                   */
cvsdist 2bbf987
-         if (rec_hour>23) rec_hour=0;
cvsdist 2bbf987
+         if (rec_hour > 23)
cvsdist 2bbf987
+         	rec_hour=0;
cvsdist 2bbf987
+         /* Handle leap seconds (AC 2004) */
cvsdist 2bbf987
+         if (rec_sec > 59 && rec_sec < 62)	/* 23:59:60/61 exist */
cvsdist 2bbf987
+         	rec_sec = 59;
cvsdist 2bbf987
 
cvsdist 2bbf987
          /* minimal sanity check on date */
8dc1d43
-         if ((i>=12)||(rec_min>59)||(rec_sec>60)||(rec_year<1990))
cvsdist 2bbf987
+         if ( i >= 12 || rec_min < 0 || rec_min > 59 ||
cvsdist 2bbf987
+              rec_sec < 0 || rec_sec > 59 || rec_year<1990 ||
cvsdist 2bbf987
+         	rec_day < 0)
cvsdist 2bbf987
          {
cvsdist 2bbf987
             total_bad++;                /* if a bad date, bump counter      */
cvsdist 2bbf987
             if (verbose)