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