--- webalizer.c.orig Tue Oct 17 00:15:53 2000 +++ webalizer.c Sat Oct 20 19:03:39 2001 @@ -101,9 +101,9 @@ /*********************************************/ char *version = "2.01"; /* program version */ -char *editlvl = "06"; /* edit level */ -char *moddate = "17-Oct-2000"; /* modification date */ -char *copyright = "Copyright 1997-2000 by Bradford L. Barrett"; +char *editlvl = "08"; /* edit level */ +char *moddate = "20-Oct-2001"; /* modification date */ +char *copyright = "Copyright 1997-2001 by Bradford L. Barrett"; int verbose = 2; /* 2=verbose,1=err, 0=none */ int debug_mode = 0; /* debug mode flag */ @@ -724,18 +724,23 @@ lptr=lptr->next; } + /* unescape referrer */ + unescape(log_rec.refer); + /* fix referrer field */ cp1 = log_rec.refer; cp3 = cp2 = cp1++; if ( (*cp2 != '\0') && (*cp2 == '"') ) { - while ( *cp1 != '\0' ) { cp3 = cp2; *cp2++ = *cp1++; } + while ( *cp1 != '\0' ) + { + cp3=cp2; + if (*cp1<32 || *cp1>=127 || *cp1=='<') *cp1=0; + else *cp2++=*cp1++; + } *cp3 = '\0'; } - /* unescape referrer */ - unescape(log_rec.refer); - /* strip query portion of cgi referrals */ cp1 = log_rec.refer; if (*cp1 != '\0') @@ -995,8 +1000,9 @@ cp1 = log_rec.hostname; while (*cp1 != '\0') { - if ( (*cp1>='A') && (*cp1<='Z')) *cp1 += 'a'-'A'; - cp1++; + if ( (*cp1>='A') && (*cp1<='Z') ) *cp1 += 'a'-'A'; + if ( (isalnum(*cp1))||(*cp1=='.')||(*cp1=='-') ) cp1++; + else *cp1='\0'; } /* Ignore/Include check */