--- 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)