case 'd':
strcpy(date,optarg);
strcpy(cduntil,optarg);
- getword(cdfrom,cduntil,'-');
+ if (getword(cdfrom,sizeof(cdfrom),cduntil,'-')<0) {
+ printf("SARG: Maybe you have a broken record or garbage in your date range.\n");
+ exit(1);
+ }
date_from(date, cdfrom, cduntil);
dfrom=atoi(cdfrom);
duntil=atoi(cduntil);
strcpy(hm,optarg);
strcpy(hmf,optarg);
} else {
- getword(hm,optarg,'-');
+ if (getword(hm,sizeof(hm),optarg,'-')<0) {
+ printf("SARG: Maybe you have a broken record or garbage in your time range.\n");
+ exit(1);
+ }
strcpy(hmf,optarg);
}
if(strlen(hm) > 5) {
}
bzero(whm,15);
if(strstr(hm,":") != 0) {
- getword(warea,hm,':');
+ if (getword(warea,sizeof(warea),hm,':')<0) {
+ printf("SARG: Maybe you have a broken record or garbage in your time range.\n");
+ exit(1);
+ }
sprintf(whm,"%s%s",warea,hm);
strcpy(hm,whm);
}
bzero(whm,15);
if(strstr(hmf,":") != 0) {
- getword(warea,hmf,':');
+ if (getword(warea,sizeof(warea),hmf,':')<0) {
+ printf("SARG: Maybe you have a broken record or garbage in your time range.\n");
+ exit(1);
+ }
sprintf(whm,"%s%s",warea,hmf);
strcpy(hmf,whm);
}
while(fgets(buf,MAXLEN,fp_usr)!=NULL) {
buf[strlen(buf)-1]='\0';
if(strstr(buf,"\r") != 0) buf[strlen(buf)-1]='\0';
- getword(bufy,buf,' ');
+ if (getword_multisep(bufy,sizeof(bufy),buf,' ')<0) {
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",UserTabFile);
+ exit(1);
+ }
for(z1=0; z1<=strlen(bufy); z1++) {
userfile[z2]=bufy[z1];
z2++;
if(!isalog && strncmp(bufz,"#Software: Mic",14) == 0) isalog++;
if(strncmp(bufz,"*** SARG Log ***",16) == 0) {
- getword(val2,arqtt,'-');
- getword(val2,arqtt,'_');
- getword(val3,arqtt,'-');
- getword(val3,arqtt,'_');
+ if (getword(val2,sizeof(val2),arqtt,'-')<0 || getword(val2,sizeof(val2),arqtt,'_')<0 ||
+ getword(val3,sizeof(val3),arqtt,'-')<0 || getword(val3,sizeof(val3),arqtt,'_')<0) {
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
sprintf(period,"%s-%s",val2,val3);
sarglog=1;
} else lseek(fileno(fp_in), 0, 0);
strcpy(warea,bufz);
strcpy(html,ExcludeString);
while(strstr(html,":") != 0) {
- getword(val1,html,':');
+ if (getword_multisep(val1,sizeof(val1),html,':')<0) {
+ printf("SARG: Maybe you have a broken record or garbage in your exclusion string.\n");
+ exit(1);
+ }
if((str=(char *) strstr(warea,val1)) != (char *) NULL )
exstring++;
}
printf("BUF=%s\n",bufz);
if(!sarglog && !isalog) {
- getword(data,bufz,' ');
+ if (getword(data,sizeof(data),bufz,' ')<0) {
+ printf("SARG: Maybe you have a broken record or garbage in your access.log file.\n");
+ exit(1);
+ }
if((str=(char *) strstr(data, ".")) != (char *) NULL ) {
if((str=(char *) strstr(str+1, ".")) != (char *) NULL ) {
strcpy(ip,data);
strcpy(elap,"0");
- if(squid24) {
- getword(user,bufz,' ');
- getword(none,bufz,' ');
- } else {
- getword(none,bufz,' ');
- getword(user,bufz,' ');
- }
- getword(data,bufz,']');
- getword(fun,bufz,'"');
- getword(fun,bufz,' ');
- getword(url,bufz,' ');
- getword(code2,bufz,' ');
- getword(code2,bufz,' ');
- getword(tam,bufz,' ');
-
-
- if((str=(char *) strstr(bufz, " ")) != (char *) NULL )
- getword(code,bufz,' ');
+ if(squid24) {
+ if (getword(user,sizeof(user),bufz,' ')<0 || getword(none,sizeof(none),bufz,' ')<0) {
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
+ } else {
+ if (getword(none,sizeof(none),bufz,' ')<0 || getword(user,sizeof(user),bufz,' ')<0) {
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
+ }
+ if (getword(data,sizeof(data),bufz,']')<0 || getword(fun,sizeof(fun),bufz,'"')<0 ||
+ getword(fun,sizeof(fun),bufz,' ')<0 || getword(url,sizeof(url),bufz,' ')<0 ||
+ getword(code2,sizeof(code2),bufz,' ')<0 || getword(code2,sizeof(code2),bufz,' ')<0 ||
+ getword(tam,sizeof(tam),bufz,' ')<0) {
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
+ if((str=(char *) strstr(bufz, " ")) != (char *) NULL ) {
+ if (getword(code,sizeof(code),bufz,' ')<0) {
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
+ }
else strcpy(code,bufz);
if ((str = strchr(code, ':')) != NULL)
}
if(!common) {
- getword(elap,bufz,' ');
+ if (getword(elap,sizeof(elap),bufz,' ')<0) {
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
while(strcmp(elap,"") == 0 && strlen(bufz) > 0)
- getword(elap,bufz,' ');
+ if (getword(elap,sizeof(elap),bufz,' ')<0) {
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
if(strlen(elap) < 1) continue;
- getword(ip,bufz,' ');
- getword(code,bufz,' ');
- getword(tam,bufz,' ');
- getword(fun,bufz,' ');
- getword(url,bufz,' ');
+ if (getword(ip,sizeof(ip),bufz,' ')<0){
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
+ if (getword(code,sizeof(code),bufz,' ')<0){
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
+ if (getword(tam,sizeof(tam),bufz,' ')<0){
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
+ if (getword(fun,sizeof(fun),bufz,' ')<0){
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
+ if (getword(url,sizeof(url),bufz,' ')<0){
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
// while (strstr(bufz,"%20") != 0) {
// getword(warea,bufz,' ');
// strcat(url,warea);
// }
- getword(user,bufz,' ');
- squid_log=1;
- }
+ if (getword(user,sizeof(user),bufz,' ')<0){
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
+ squid_log=1;
+ }
} else if(!isalog) {
- getword(data,bufz,' ');
- getword(hora,bufz,' ');
- getword(user,bufz,' ');
- getword(ip,bufz,' ');
- getword(url,bufz,' ');
- getword(tam,bufz,' ');
- getword(code,bufz,' ');
- getword(elap,bufz,' ');
- getword(smartfilter,bufz,' ');
+ if (getword(data,sizeof(data),bufz,' ')<0){
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
+ if (getword(hora,sizeof(hora),bufz,' ')<0) {
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
+ if (getword(user,sizeof(user),bufz,' ')<0) {
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
+ if (getword(ip,sizeof(ip),bufz,' ')<0) {
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
+ if (getword(url,sizeof(url),bufz,' ')<0){
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
+ if (getword(tam,sizeof(tam),bufz,' ')<0){
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
+ if (getword(code,sizeof(code),bufz,' ')<0){
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
+ if (getword(elap,sizeof(elap),bufz,' ')<0){
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
+ if (getword(smartfilter,sizeof(smartfilter),bufz,' ')<0){
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
} else if(isalog) {
if(!i0) {
- getword(val1,bufz,' ');
+ if (getword(val1,sizeof(val1),bufz,' ')<0){
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
while(strstr(bufz,"\t") != 0) {
- getword(val1,bufz,'\t');
+ if (getword(val1,sizeof(val1),bufz,'\t')<0){
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
i0++;
if(strcmp(val1,"c-ip") == 0) i1=i0;
if(strcmp(val1,"cs-username") == 0) i2=i0;
}
fgets(bufz,sizeof(bufz),fp_in);
strcpy(val1,bufz);
- for(x=0; x<=i1-1; x++) getword3(ip,val1,'\t');
+ for(x=0; x<=i1-1; x++) {
+ if (getword3(ip,sizeof(ip),val1,'\t')<0) {
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
+ }
strcpy(val1,bufz);
- for(x=0; x<=i2-1; x++) getword3(user,val1,'\t');
+ for(x=0; x<=i2-1; x++) {
+ if (getword3(user,sizeof(user),val1,'\t')<0) {
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
+ }
strcpy(val1,bufz);
- for(x=0; x<=i3-1; x++) getword3(data,val1,'\t');
+ for(x=0; x<=i3-1; x++) {
+ if (getword3(data,sizeof(data),val1,'\t')<0) {
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
+ }
strcpy(val1,bufz);
- for(x=0; x<=i4-1; x++) getword3(hora,val1,'\t');
+ for(x=0; x<=i4-1; x++) {
+ if (getword3(hora,sizeof(hora),val1,'\t')<0) {
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
+ }
strcpy(val1,bufz);
- for(x=0; x<=i5-1; x++) getword3(elap,val1,'\t');
+ for(x=0; x<=i5-1; x++) {
+ if (getword3(elap,sizeof(elap),val1,'\t')<0) {
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
+ }
strcpy(val1,bufz);
- for(x=0; x<=i6-1; x++) getword3(tam,val1,'\t');
+ for(x=0; x<=i6-1; x++) {
+ if (getword3(tam,sizeof(tam),val1,'\t')<0) {
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
+ }
strcpy(val1,bufz);
- for(x=0; x<=i7-1; x++) getword3(url,val1,'\t');
+ for(x=0; x<=i7-1; x++) {
+ if (getword3(url,sizeof(url),val1,'\t')<0) {
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
+ }
strcpy(val1,bufz);
- for(x=0; x<=i8-1; x++) getword3(code,val1,'\t');
+ for(x=0; x<=i8-1; x++) {
+ if (getword3(code,sizeof(code),val1,'\t')<0) {
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
+ }
if(strcmp(code,"401") == 0 || strcmp(code,"403") == 0 || strcmp(code,"407") == 0) {
sprintf(val1,"DENIED/%s",code);
strcpy(code,val1);
}
- getword(ano,data,'-');
- getword(mes,data,'-');
+ if (getword(ano,sizeof(ano),data,'-')<0){
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
+ if (getword(mes,sizeof(mes),data,'-')<0){
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",arq);
+ exit(1);
+ }
strcpy(dia,data);
conv_month_name(mes);
sprintf(data," %s/%s/%s:%s",dia,mes,ano,hora);
continue;
if(strstr(user,"%20") != 0) {
- getword(w,user,'%');
+ if (getword(w,sizeof(w),user,'%')<0) {
+ printf("SARG: Maybe you have a broken user in your %s file.\n",arq);
+ exit(1);
+ }
strcpy(user,w);
}
while(strstr(user,"%5c") != 0) {
- getword(w,user,'%');
+ if (getword_multisep(w,sizeof(w),user,'%')<0){
+ printf("SARG: Maybe you have a broken user in your %s file.\n",arq);
+ exit(1);
+ }
strcpy(wuser,user+2);
sprintf(user,"%s.%s",w,wuser);
}
strlow(user);
if(strncmp(NtlmUserFormat,"user",4) == 0) {
if(strstr(user,"_") != 0)
- getword(warea,user,'_');
+ if (getword_multisep(warea,sizeof(warea),user,'_')<0){
+ printf("SARG: Maybe you have a broken user in your %s file.\n",arq);
+ exit(1);
+ }
if(strstr(user,"+") != 0)
- getword(warea,user,'+');
+ if (getword_multisep(warea,sizeof(warea),user,'+')<0){
+ printf("SARG: Maybe you have a broken user in your %s file.\n",arq);
+ exit(1);
+ }
}
if(strstr(ReportType,"denied") != 0)
}
if (strchr(url,'/')) {
- getword(w,url,'/');
- getword(w,url,'/');
- if (!strchr(url,'/')) {
+ if (getword(w,sizeof(w),url,'/')<0){
+ printf("SARG: Maybe you have a broken url in your %s file.\n",arq);
+ exit(1);
+ }
+ if (getword(w,sizeof(w),url,'/')<0){
+ printf("SARG: Maybe you have a broken url in your %s file.\n",arq);
+ exit(1);
+ }
+ if (!strchr(url,'/')) {
totregsx++;
continue;
}
}
if(strcmp(LongUrl,"no") == 0) {
- getword(w,url,'/');
+ if (getword_multisep(w,sizeof(w),url,'/')<0){
+ printf("SARG: Maybe you have a broken url in your %s file.\n",arq);
+ exit(1);
+ }
strcpy(url,w);
if(strlen(url) > 512 && strstr(url,"%") != 0) {
- getword(w,url,'%');
+ if (getword_multisep(w,sizeof(w),url,'%')<0){
+ printf("SARG: Maybe you have a broken url in your %s file.\n",arq);
+ exit(1);
+ }
strcpy(url,w);
}
}
if(strncmp(df,"u",1)==0)
strftime(dia, 127, "%m/%d/%Y", t);
sprintf(hora,"%02d:%02d:%02d",t->tm_hour,t->tm_min,t->tm_sec);
- } else {
- strcpy(wtemp,data+1);
- getword(data,wtemp,':');
- getword(hora,wtemp,' ');
- getword(dia,data,'/');
- getword(mes,data,'/');
- getword(ano,data,'/');
+ } else {
+ strcpy(wtemp,data+1);
+ if (getword_multisep(data,sizeof(data),wtemp,':')<0){
+ printf("SARG: Maybe you have a broken date in your %s file.\n",arq);
+ exit(1);
+ }
+ if (getword_multisep(hora,sizeof(hora),wtemp,' ')<0){
+ printf("SARG: Maybe you have a broken date in your %s file.\n",arq);
+ exit(1);
+ }
+ if (getword_multisep(dia,sizeof(dia),data,'/')<0){
+ printf("SARG: Maybe you have a broken date in your %s file.\n",arq);
+ exit(1);
+ }
+ if (getword_multisep(mes,sizeof(mes),data,'/')<0){
+ printf("SARG: Maybe you have a broken date in your %s file.\n",arq);
+ exit(1);
+ }
+ if (getword_multisep(ano,sizeof(ano),data,'/')<0){
+ printf("SARG: Maybe you have a broken date in your %s file.\n",arq);
+ exit(1);
+ }
if(strcmp(df,"u") == 0)
sprintf(tbuf,"%s%s%s",ano,mes,dia);
idata=atoi(wdata);
}
} else {
- getword(mes,data,'/');
- getword(dia,data,'/');
- strcpy(ano,data);
+ if (getword_multisep(mes,sizeof(mes),data,'/')<0){
+ printf("SARG: Maybe you have a broken date in your %s file.\n",arq);
+ exit(1);
+ }
+ if (getword_multisep(dia,sizeof(dia),data,'/')<0){
+ printf("SARG: Maybe you have a broken date in your %s file.\n",arq);
+ exit(1);
+ }
+ if (getword_multisep(ano,sizeof(ano),data,0)<0){
+ printf("SARG: Maybe you have a broken date in your %s file.\n",arq);
+ exit(1);
+ }
}
if(debugm)
bzero(hmr,15);
chm++;
while(chm) {
- getword(warea,whm,':');
+ if (getword_multisep(warea,sizeof(warea),whm,':')<0){
+ printf("SARG: Maybe you have a broken time in your %s file.\n",arq);
+ exit(1);
+ }
strncat(hmr,warea,2);
chm--;
}
if(strcmp(ParsedOutputLog, "no") != 0 && !sarglog) {
fclose(fp_log);
strcpy(val1,period);
- getword(val2,val1,'-');
- getword(val3,per_hour,'-');
+ if (getword_multisep(val2,sizeof(val2),val1,'-')<0){
+ printf("SARG: Maybe you have a broken date range definition.\n");
+ exit(1);
+ }
+ if (getword_multisep(val3,sizeof(val3),per_hour,'-')<0){
+ printf("SARG: Maybe you have a broken date range definition.\n");
+ exit(1);
+ }
sprintf(val4,"%s/sarg-%s_%s-%s_%s.log",ParsedOutputLog,val2,val3,val1,per_hour);
rename(arq_log,val4);
strcpy(arq_log,val4);
sprintf(userfile,":");
while(fgets(buf,255,fp_usr)!=NULL) {
- getword(user,buf,':');
+ if (getword_multisep(user,sizeof(user),buf,':')<0){
+ printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",pwdfile);
+ exit(1);
+ }
strncat(userfile,user,strlen(user));
strncat(userfile,":",1);
}