From: Frédéric Marchal Date: Tue, 7 Jul 2009 13:21:05 +0000 (+0000) Subject: All the sprintf/fputs have been replaced by fprintf to avoid an intermediary buffer... X-Git-Tag: v2_2_6~69 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=354c1a686053d8ef90e2734e639b829fc5b063cc;p=thirdparty%2Fsarg.git All the sprintf/fputs have been replaced by fprintf to avoid an intermediary buffer and possible buffer overflow. --- diff --git a/authfail.c b/authfail.c index 69ebbfb..e0a4239 100644 --- a/authfail.c +++ b/authfail.c @@ -31,7 +31,6 @@ void authfail_report(void) FILE *fp_in = NULL, *fp_ou = NULL; char url[MAXLEN]; - char html2[MAXLEN]; char authfail_in[MAXLEN]; char per[MAXLEN]; char report[MAXLEN]; @@ -109,21 +108,17 @@ void authfail_report(void) else show_sarg(fp_ou,".."); fputs("
\n",fp_ou); - sprintf(url,"\n",Title); - fputs(url,fp_ou); + fprintf(fp_ou,"\n",Title); - sprintf(url,"\n",text[89],period); - fputs(url,fp_ou); - sprintf(url,"\n",text[117]); - fputs(url,fp_ou); + fprintf(fp_ou,"\n",text[89],period); + fprintf(fp_ou,"\n",text[117]); fputs("
%s
%s
%s: %s
%s
%s: %s
%s
\n",fp_ou); fputs("
\n",fp_ou); fputs("\n",fp_ou); fputs("\n",fp_ou); fputs("\n",fp_ou); - sprintf(url,"\n",text[98],text[111],text[110],text[91]); - fputs(url,fp_ou); + fprintf(fp_ou,"\n",text[98],text[111],text[110],text[91]); while(fgets(buf,sizeof(buf),fp_in)!=NULL) { if (getword_multisep(data,sizeof(data),buf,' ')<0 || getword_multisep(hora,sizeof(hora),buf,' ')<0 || @@ -186,8 +181,7 @@ void authfail_report(void) continue; } - sprintf(html2,"\n",name,ip,data,hora,BlockImage,url,url); - fputs(html2,fp_ou); + fprintf(fp_ou,"\n",name,ip,data,hora,BlockImage,url,url); } fputs("
%s%s%s%s
%s%s%s%s
%s%s%s-%s%s%s
%s%s%s-%s%s%s
\n",fp_ou); diff --git a/dansguardian_log.c b/dansguardian_log.c index 3588d43..e8876df 100644 --- a/dansguardian_log.c +++ b/dansguardian_log.c @@ -152,8 +152,7 @@ void dansguardian_log(void) strcpy(user,ip); bzero(ip, 30); } - sprintf(tmp6,"%s %d %s %s %s %s %s\n",user,idata,hour,ip,url,code1,code2); - fputs(tmp6, fp_ou); + fprintf(fp_ou,"%s %d %s %s %s %s %s\n",user,idata,hour,ip,url,code1,code2); dansguardian_count++; } diff --git a/dansguardian_report.c b/dansguardian_report.c index 1ae3f3f..e877180 100644 --- a/dansguardian_report.c +++ b/dansguardian_report.c @@ -31,7 +31,6 @@ void dansguardian_report(void) FILE *fp_in = NULL, *fp_ou = NULL; char url[MAXLEN]; - char html2[MAXLEN]; char dansguardian_in[MAXLEN]; char per[MAXLEN]; char report[MAXLEN]; @@ -97,19 +96,15 @@ void dansguardian_report(void) else show_sarg(fp_ou,".."); fputs("
\n",fp_ou); - sprintf(url,"\n",Title); - fputs(url,fp_ou); + fprintf(fp_ou,"\n",Title); - sprintf(url,"\n",text[89],period); - fputs(url,fp_ou); - sprintf(url,"\n",text[128]); - fputs(url,fp_ou); + fprintf(fp_ou,"\n",text[89],period); + fprintf(fp_ou,"\n",text[128]); fputs("
%s
%s
%s: %s
%s
%s: %s
%s
\n",fp_ou); fputs("
\n",fp_ou); fputs("\n",fp_ou); - sprintf(url,"\n",text[98],text[111],text[110],text[91],text[129]); - fputs(url,fp_ou); + fprintf(fp_ou,"\n",text[98],text[111],text[110],text[91],text[129]); while(fgets(buf,sizeof(buf),fp_in)!=NULL) { if (getword(user,sizeof(user),buf,' ')<0 || getword(date2,sizeof(date2),buf,' ')<0 || @@ -190,8 +185,7 @@ void dansguardian_report(void) continue; } - sprintf(html2,"\n",name,ip,date,hour,url,url,rule); - fputs(html2,fp_ou); + fprintf(fp_ou,"\n",name,ip,date,hour,url,url,rule); } fputs("
%s%s%s%s%s
%s%s%s%s%s
%s%s%s-%s%s%s
%s%s%s-%s%s%s
\n",fp_ou); diff --git a/denied.c b/denied.c index 66bc392..bdda37e 100644 --- a/denied.c +++ b/denied.c @@ -31,7 +31,6 @@ void gen_denied_report(void) FILE *fp_in = NULL, *fp_ou = NULL; char url[MAXLEN]; - char html2[MAXLEN]; char denied_in[MAXLEN]; char per[MAXLEN]; char report[MAXLEN]; @@ -96,19 +95,15 @@ void gen_denied_report(void) show_sarg(fp_ou, ".."); fputs("
\n",fp_ou); - sprintf(url,"\n",Title); - fputs(url,fp_ou); + fprintf(fp_ou,"\n",Title); - sprintf(url,"\n",text[89],period); - fputs(url,fp_ou); - sprintf(url,"\n",text[46]); - fputs(url,fp_ou); + fprintf(fp_ou,"\n",text[89],period); + fprintf(fp_ou,"\n",text[46]); fputs("
%s
%s
%s: %s
%s
%s: %s
%s
\n",fp_ou); fputs("
\n",fp_ou); fputs("\n",fp_ou); - sprintf(url,"\n",text[98],text[111],text[110],text[91]); - fputs(url,fp_ou); + fprintf(fp_ou,"\n",text[98],text[111],text[110],text[91]); while(fgets(buf,sizeof(buf),fp_in)!=NULL) { if (getword(data,sizeof(data),buf,' ')<0 || getword(hora,sizeof(hora),buf,' ')<0 || @@ -175,8 +170,7 @@ void gen_denied_report(void) sprintf(BlockImage," ",wwwDocumentRoot,BlockIt,url,ImageFile); else BlockImage[0]='\0'; - sprintf(html2,"\n",name,ip,data,hora,BlockImage,url,url); - fputs(html2,fp_ou); + fprintf(fp_ou,"\n",name,ip,data,hora,BlockImage,url,url); } fputs("
%s%s%s%s
%s%s%s%s
%s%s%s-%s%s%s
%s%s%s-%s%s%s
\n",fp_ou); diff --git a/download.c b/download.c index ee47d79..82f61cc 100644 --- a/download.c +++ b/download.c @@ -31,8 +31,6 @@ void download_report(void) FILE *fp_in = NULL, *fp_ou = NULL; char url[MAXLEN]; - char html[MAXLEN]; - char html2[MAXLEN]; char report_in[MAXLEN]; char wdirname[MAXLEN]; char report[MAXLEN]; @@ -87,13 +85,11 @@ void download_report(void) fputs("\n",fp_ou); fputs("\n",fp_ou); - sprintf(html," \n",CharSet); - fputs(html,fp_ou); + fprintf(fp_ou," \n",CharSet); css(fp_ou); fputs("\n",fp_ou); - sprintf(url,"\n",BgColor,TxColor,BgImage); - fputs(url,fp_ou); + fprintf(fp_ou,"\n",BgColor,TxColor,BgImage); if(strlen(LogoImage) > 0) fprintf(fp_ou, "
\n\n\n
 %s
\n",LogoImage,Width,Height,LogoText); @@ -103,19 +99,15 @@ void download_report(void) show_sarg(fp_ou, ".."); fputs("
\n",fp_ou); - sprintf(url,"\n",Title); - fputs(url,fp_ou); + fprintf(fp_ou,"\n",Title); - sprintf(url,"\n",text[89],period); - fputs(url,fp_ou); - sprintf(url,"\n",text[125]); - fputs(url,fp_ou); + fprintf(fp_ou,"\n",text[89],period); + fprintf(fp_ou,"\n",text[125]); fputs("
%s
%s
%s: %s
%s
%s: %s
%s
\n",fp_ou); fputs("
\n",fp_ou); fputs("\n",fp_ou); - sprintf(url,"\n",text[98],text[111],text[110],text[91]); - fputs(url,fp_ou); + fprintf(fp_ou,"\n",text[98],text[111],text[110],text[91]); while(fgets(buf,sizeof(buf),fp_in)!=NULL) { if (getword(data,sizeof(data),buf,' ')<0 || getword(hora,sizeof(hora),buf,' ')<0 || @@ -182,8 +174,7 @@ void download_report(void) sprintf(BlockImage," ",wwwDocumentRoot,BlockIt,url,ImageFile); else BlockImage[0]='\0'; - sprintf(html2,"\n",name,ip,data,hora,BlockImage,url,url); - fputs(html2,fp_ou); + fprintf(fp_ou,"\n",name,ip,data,hora,BlockImage,url,url); } fputs("
%s%s%s%s
%s%s%s%s
%s%s%s-%s%s%s
%s%s%s-%s%s%s
\n",fp_ou); diff --git a/email.c b/email.c index fafabe1..204da35 100644 --- a/email.c +++ b/email.c @@ -35,7 +35,7 @@ int geramail(const char *dirname, int debug, const char *outdir, int userip, con float perc2=0.00; int posicao=0; char olduser[MAXLEN], csort[MAXLEN], period[MAXLEN], arqper[MAXLEN]; - char wger[MAXLEN], top1[MAXLEN], top2[MAXLEN], top3[MAXLEN], user[MAXLEN], nacc[20], nbytes[20], url[1024], preg[MAXLEN], tusr[MAXLEN]; + char wger[MAXLEN], top1[MAXLEN], top2[MAXLEN], top3[MAXLEN], user[MAXLEN], nacc[20], nbytes[20], url[1024], tusr[MAXLEN]; char ip[MAXLEN], hora[9], data[11], elap[15], user2[MAXLEN], wperc[8], wperc2[8]; char strip1[MAXLEN], strip2[MAXLEN], strip3[MAXLEN], strip4[MAXLEN], strip5[MAXLEN], strip6[MAXLEN], strip7[MAXLEN]; char incac[16], oucac[16]; @@ -93,17 +93,16 @@ int geramail(const char *dirname, int debug, const char *outdir, int userip, con totuser++; #if defined(__FreeBSD__) - sprintf(preg,"%s %15qu %15qu %15qu\n",olduser,tnbytes,tnacc,tnelap); + fprintf(fp_top2,"%s %15qu %15qu %15qu\n",olduser,tnbytes,tnacc,tnelap); #elif defined(__alpha) || __ALPHA - sprintf(preg,"%s %15ld %15ld %15ld\n",olduser,tnbytes,tnacc,tnelap); + fprintf(fp_top2,"%s %15ld %15ld %15ld\n",olduser,tnbytes,tnacc,tnelap); #else - sprintf(preg,"%s %15lld %15lld %15lld\n",olduser,tnbytes,tnacc,tnelap); + fprintf(fp_top2,"%s %15lld %15lld %15lld\n",olduser,tnbytes,tnacc,tnelap); #endif - fputs(preg,fp_top2); - strcpy(olduser,user); + strcpy(olduser,user); ttnbytes=ttnbytes+tnbytes; - ttnacc=ttnacc+tnacc; - ttnelap=ttnelap+tnelap; + ttnacc=ttnacc+tnacc; + ttnelap=ttnelap+tnelap; tnbytes=0; tnacc=0; tnelap=0; @@ -128,25 +127,16 @@ int geramail(const char *dirname, int debug, const char *outdir, int userip, con continue; } #if defined(__FreeBSD__) - sprintf(preg,"%s %15qu %15qu %15qu\n",olduser,tnbytes,tnacc,tnelap); + fprintf(fp_top2,"%s %15qu %15qu %15qu\n",olduser,tnbytes,tnacc,tnelap); #elif defined(__alpha) || __ALPHA - sprintf(preg,"%s %15ld %15ld %15ld\n",olduser,tnbytes,tnacc,tnelap); + fprintf(fp_top2,"%s %15ld %15ld %15ld\n",olduser,tnbytes,tnacc,tnelap); #else - sprintf(preg,"%s %15lld %15lld %15lld\n",olduser,tnbytes,tnacc,tnelap); + fprintf(fp_top2,"%s %15lld %15lld %15lld\n",olduser,tnbytes,tnacc,tnelap); #endif - fputs(preg,fp_top2); ttnbytes=ttnbytes+tnbytes; ttnacc=ttnacc+tnacc; ttnelap=ttnelap+tnelap; -#if defined(__FreeBSD__) - sprintf(preg,"TOTAL %15qu %15qu %15qu\n",ttnbytes,ttnacc,ttnelap); -#elif defined(__alpha) || __ALPHA - sprintf(preg,"TOTAL %15ld %15ld %15ld\n",ttnbytes,ttnacc,ttnelap); -#else - sprintf(preg,"TOTAL %15lld %15lld %15lld\n",ttnbytes,ttnacc,ttnelap); -#endif - fclose(fp_in); fclose(fp_top2); @@ -164,7 +154,13 @@ int geramail(const char *dirname, int debug, const char *outdir, int userip, con fprintf(stderr, "SARG: (email) %s: %s\n",text[45],top1); exit(1); } - fputs(preg,fp_top1); +#if defined(__FreeBSD__) + fprintf(fp_top1,"TOTAL %15qu %15qu %15qu\n",ttnbytes,ttnacc,ttnelap); +#elif defined(__alpha) || __ALPHA + fprintf(fp_top1,"TOTAL %15ld %15ld %15ld\n",ttnbytes,ttnacc,ttnelap); +#else + fprintf(fp_top1,"TOTAL %15lld %15lld %15lld\n",ttnbytes,ttnacc,ttnelap); +#endif fclose(fp_top1); if((fp_top1=fopen(top1,"r"))==NULL) { @@ -194,18 +190,15 @@ int geramail(const char *dirname, int debug, const char *outdir, int userip, con sprintf(strip1,"%s",text[88]); strip_latin(strip1); - sprintf(preg,"%s\n",strip1); - fputs(preg,fp_top3); + fprintf(fp_top3,"%s\n",strip1); sprintf(strip1,"%s",text[97]); strip_latin(strip1); - sprintf(preg,"%s\n",strip1); - fputs(preg,fp_top3); + fprintf(fp_top3,"%s\n",strip1); sprintf(strip1,"%s",text[89]); strip_latin(strip1); - sprintf(preg,"%s %s\n\n",strip1,period); - fputs(preg,fp_top3); + fprintf(fp_top3,"%s %s\n\n",strip1,period); sprintf(strip1,"%s",text[100]); strip_latin(strip1); @@ -222,8 +215,7 @@ int geramail(const char *dirname, int debug, const char *outdir, int userip, con sprintf(strip7,"%s",text[99]); strip_latin(strip7); - sprintf(preg,"%-7s %-20s %-8s %-15s %%%-6s %-10s %-10s %%%-7s\n------- -------------------- -------- --------------- ------- ---------- ---------- -------\n",strip1,strip2,strip3,strip4,strip4,strip5,strip6,strip7); - fputs(preg,fp_top3); + fprintf(fp_top3,"%-7s %-20s %-8s %-15s %%%-6s %-10s %-10s %%%-7s\n------- -------------------- -------- --------------- ------- ---------- ---------- -------\n",strip1,strip2,strip3,strip4,strip4,strip5,strip6,strip7); fscanf(fp_top1,"%s",user); fscanf(fp_top1,"%s",nbytes); @@ -256,28 +248,25 @@ int geramail(const char *dirname, int debug, const char *outdir, int userip, con sprintf(wperc,"%3.2f%%",perc); sprintf(wperc2,"%3.2f%%",perc2); + if(strstr(user,"TOTAL") != 0){ + fputs("------- -------------------- -------- --------------- ------- ---------- ---------- -------\n",fp_top3); #if defined(__FreeBSD__) - sprintf(preg,"%7d %20s %8s %15s %7s %10s %10qu %7s%%\n",posicao,user2,nacc,fixnum(tnbytes,1),wperc,buildtime(tnelap),tnelap,wperc2); + fprintf(fp_top3,"%-7s %20s %8qu %15s %8s %9s %10qu\n",text[107]," ",ttnacc,fixnum(ttnbytes,1)," ",buildtime(ttnelap),ttnelap); #elif defined(__alpha) || __ALPHA - sprintf(preg,"%7d %20s %8s %15s %7s %10s %10ld %7s%%\n",posicao,user2,nacc,fixnum(tnbytes,1),wperc,buildtime(tnelap),tnelap,wperc2); + fprintf(fp_top3,"%-7s %20s %8ld %15s %8s %9s %10ld\n",text[107]," ",ttnacc,fixnum(ttnbytes,1)," ",buildtime(ttnelap),ttnelap); #else - sprintf(preg,"%7d %20s %8s %15s %7s %10s %10lld %7s\n",posicao,user2,nacc,fixnum(tnbytes,1),wperc,buildtime(tnelap),tnelap,wperc2); + fprintf(fp_top3,"%-7s %20s %8lld %15s %8s %9s %10lld\n",text[107]," ",ttnacc,fixnum(ttnbytes,1)," ",buildtime(ttnelap),ttnelap); #endif - - if(strstr(user,"TOTAL") != 0){ - sprintf(preg,"------- -------------------- -------- --------------- ------- ---------- ---------- -------\n"); - fputs(preg,fp_top3); + } else { #if defined(__FreeBSD__) - sprintf(preg,"%-7s %20s %8qu %15s %8s %9s %10qu\n",text[107]," ",ttnacc,fixnum(ttnbytes,1)," ",buildtime(ttnelap),ttnelap); + fprintf(fp_top3,"%7d %20s %8s %15s %7s %10s %10qu %7s%%\n",posicao,user2,nacc,fixnum(tnbytes,1),wperc,buildtime(tnelap),tnelap,wperc2); #elif defined(__alpha) || __ALPHA - sprintf(preg,"%-7s %20s %8ld %15s %8s %9s %10ld\n",text[107]," ",ttnacc,fixnum(ttnbytes,1)," ",buildtime(ttnelap),ttnelap); + fprintf(fp_top3,"%7d %20s %8s %15s %7s %10s %10ld %7s%%\n",posicao,user2,nacc,fixnum(tnbytes,1),wperc,buildtime(tnelap),tnelap,wperc2); #else - sprintf(preg,"%-7s %20s %8lld %15s %8s %9s %10lld\n",text[107]," ",ttnacc,fixnum(ttnbytes,1)," ",buildtime(ttnelap),ttnelap); + fprintf(fp_top3,"%7d %20s %8s %15s %7s %10s %10lld %7s\n",posicao,user2,nacc,fixnum(tnbytes,1),wperc,buildtime(tnelap),tnelap,wperc2); #endif } - fputs(preg,fp_top3); - fscanf(fp_top1,"%s",user); fscanf(fp_top1,"%s",nbytes); fscanf(fp_top1,"%s",nacc); @@ -291,21 +280,19 @@ int geramail(const char *dirname, int debug, const char *outdir, int userip, con sprintf(strip1,"%s",text[96]); strip_latin(strip1); #if defined(__FreeBSD__) - sprintf(preg,"%-7s %20s %8qu %15s %8s %9s %10qu\n",strip1," ",ttnacc/totuser,fixnum(tnbytes,1)," ",buildtime(ttnelap/totuser),ttnelap/totuser); + fprintf(fp_top3,"%-7s %20s %8qu %15s %8s %9s %10qu\n",strip1," ",ttnacc/totuser,fixnum(tnbytes,1)," ",buildtime(ttnelap/totuser),ttnelap/totuser); #elif defined(__alpha) || __ALPHA - sprintf(preg,"%-7s %20s %8ld %15s %8s %9s %10ld\n",strip1," ",ttnacc/totuser,fixnum(tnbytes,1)," ",buildtime(ttnelap/totuser),ttnelap/totuser); + fprintf(fp_top3,"%-7s %20s %8ld %15s %8s %9s %10ld\n",strip1," ",ttnacc/totuser,fixnum(tnbytes,1)," ",buildtime(ttnelap/totuser),ttnelap/totuser); #else - sprintf(preg,"%-7s %20s %8lld %15s %8s %9s %10lld\n",strip1," ",ttnacc/totuser,fixnum(tnbytes,1)," ",buildtime(ttnelap/totuser),ttnelap/totuser); + fprintf(fp_top3,"%-7s %20s %8lld %15s %8s %9s %10lld\n",strip1," ",ttnacc/totuser,fixnum(tnbytes,1)," ",buildtime(ttnelap/totuser),ttnelap/totuser); #endif - fputs(preg,fp_top3); fclose(fp_top1); unlink(top1); t = time(NULL); local = localtime(&t); - sprintf(preg, "\n%s\n", asctime(local)); - fputs(preg,fp_top3); + fprintf(fp_top3, "\n%s\n", asctime(local)); fclose(fp_top3); diff --git a/html.c b/html.c index 2e684fa..6a24f90 100644 --- a/html.c +++ b/html.c @@ -201,19 +201,16 @@ void htmlrel(void) fputs(" \"http://www.w3.org/TR/html4/loose.dtd\">\n",fp_ou); fputs("\n",fp_ou); fputs("\n",fp_ou); - sprintf(html," \n",CharSet); - fputs(html,fp_ou); + fprintf(fp_ou," \n",CharSet); css(fp_ou); fputs("\n",fp_ou); - sprintf(buf,"\n",FontFace,TitleFontSize,BgColor,BgImage); - fputs(buf,fp_ou); if(strlen(LogoImage) > 0) { fputs("
\n",fp_ou); - sprintf(html,"\n",LogoImage,Width,Height,LogoText); - fputs(html,fp_ou); + fprintf(fp_ou,"\n",LogoImage,Width,Height,LogoText); fputs("\n",fp_ou); fputs("
 %s
 %s
\n",fp_ou); } @@ -224,8 +221,7 @@ void htmlrel(void) show_sarg(fp_ou, "../.."); fputs("
\n",fp_ou); - sprintf(html,"\n",Title); - fputs(html,fp_ou); + fprintf(fp_ou,"\n",Title); strcpy(u2,usuario); if(userip){ @@ -255,22 +251,17 @@ void htmlrel(void) strcpy(name2,str2); } - sprintf(html,"\n",text[89],period); - fputs(html,fp_ou); - sprintf(html,"\n",text[90],name2); - fputs(html,fp_ou); - sprintf(html,"\n",text[104],UserSortField,UserSortOrder); - fputs(html,fp_ou); - sprintf(html,"\n",text[32],text[55]); - fputs(html,fp_ou); + fprintf(fp_ou,"\n",text[89],period); + fprintf(fp_ou,"\n",text[90],name2); + fprintf(fp_ou,"\n",text[104],UserSortField,UserSortOrder); + fprintf(fp_ou,"\n",text[32],text[55]); fputs("\n",fp_ou); fputs("
%s
%s
%s: %s
%s: %s
%s: %s, %s
%s %s
%s: %s
%s: %s
%s: %s, %s
%s %s
\n",fp_ou); fputs("
\n",fp_ou); if(strlen(denied_report) > 0) { - sprintf(html,"\n",denied_report,text[116],text[55]); - fputs(html,fp_ou); + fprintf(fp_ou,"\n",denied_report,text[116],text[55]); } strcpy(val3,text[92]); @@ -301,8 +292,7 @@ void htmlrel(void) if(strstr(UserReportFields,"%TIME") == 0) bzero(val8, 255); - sprintf(html,"\n",text[91],val3,val4,val11,val9,val5,val6,val7,val8); - fputs(html,fp_ou); + fprintf(fp_ou,"\n",text[91],val3,val4,val11,val9,val5,val6,val7,val8); if(debug) { if(userip) { @@ -446,14 +436,11 @@ void htmlrel(void) if(strncmp(tmsg," ",1) == 0) bzero(hbc9, 30); - sprintf(html,"%s\n",val2,httplink,wwork1,wwork2,val3,val4,val5,val6,wwork3,val7,tmsg); - if(UserReportLimit) { - if(count <= UserReportLimit) { - fputs(html,fp_ou); - count++; - } - } else fputs(html,fp_ou); + if(UserReportLimit<=0 || count<=UserReportLimit) { + fprintf(fp_ou,"%s\n",val2,httplink,wwork1,wwork2,val3,val4,val5,val6,wwork3,val7,tmsg); + count++; + } if(iprel) { strcpy(arqip,tmp); @@ -513,8 +500,7 @@ void htmlrel(void) if(strcmp(user_ip,olduserip) != 0) { my_lltoa(unelap,val2,0); sprintf(wwork1,"%s",fixnum(unbytes,1)); - sprintf(html,"\n",olduserip,wwork1,buildtime(unelap),val2); - fputs(html,fp_ou); + fprintf(fp_ou,"\n",olduserip,wwork1,buildtime(unelap),val2); strcpy(olduserip,user_ip); unacc=0; @@ -541,8 +527,7 @@ void htmlrel(void) my_lltoa(unelap,val3,0); sprintf(wwork1,"%s",fixnum(unbytes,1)); - sprintf(html,"\n",olduserip,wwork1,buildtime(unelap),val3); - fputs(html,fp_ou); + fprintf(fp_ou,"\n",olduserip,wwork1,buildtime(unelap),val3); } unacc=0; @@ -639,8 +624,7 @@ void htmlrel(void) } if(strstr(UserReportFields,"TOTAL") != 0) { - sprintf(html,"\n",hbc9,text[107],hbc1,wwork1,hbc2,wwork2,hbc4,val3,hbc5,val4,hbc6,val5,hbc7,val6,hbc3,wwork3,hbc8,val7); - fputs(html,fp_ou); + fprintf(fp_ou,"\n",hbc9,text[107],hbc1,wwork1,hbc2,wwork2,hbc4,val3,hbc5,val4,hbc6,val5,hbc7,val6,hbc3,wwork3,hbc8,val7); } fclose(fp_in); @@ -669,8 +653,7 @@ void htmlrel(void) fprintf(stderr, "SARG: (html10) %s: %s\n",text[45],PerUserLimitFile); exit(1); } - sprintf(html,"%s\n",u2); - fputs(html,fp_usr); + fprintf(fp_usr,"%s\n",u2); fclose(fp_usr); if(debug) { @@ -750,8 +733,7 @@ void htmlrel(void) } if(strstr(UserReportFields,"AVERAGE") != 0) { - sprintf(html,"\n",hbc6,text[96],hbc1,wwork1,hbc2,wwork2,hbc4,val6,hbc3,wwork3,hbc5,val7); - fputs(html,fp_ou); + fprintf(fp_ou,"\n",hbc6,text[96],hbc1,wwork1,hbc2,wwork2,hbc4,val6,hbc3,wwork3,hbc5,val7); } } /* added */ tnacc=0; diff --git a/include/info.h b/include/info.h index 2f266d5..b51977c 100755 --- a/include/info.h +++ b/include/info.h @@ -1,3 +1,3 @@ -#define VERSION "2.2.5 Mar-03-2008" +#define VERSION "2.2.5 Jul-07-2009" #define PGM "sarg" #define URL "http://sarg.sourceforge.net" diff --git a/lastlog.c b/lastlog.c index abbaca4..fb48e2f 100644 --- a/lastlog.c +++ b/lastlog.c @@ -59,8 +59,7 @@ void mklastlog(const char *outdir) t=statb.st_ctime; local = localtime(&t); strftime(ftime, 127, "%Y%m%d%H%M%S", local); - sprintf(buf,"%s %s\n",ftime,direntp->d_name); - fputs(buf,fp_ou); + fprintf(fp_ou,"%s %s\n",ftime,direntp->d_name); ftot++; } diff --git a/log.c b/log.c index 7c0b0c0..c6147c2 100644 --- a/log.c +++ b/log.c @@ -1443,14 +1443,12 @@ int main(argc,argv) if(strstr(ReportType,"denied") != 0 || strstr(ReportType,"auth_failures") != 0) { if(strstr(code,"DENIED/403") != 0) { - sprintf(bufz, "%s %s %s %s %s\n",dia,hora,user,ip,urly); - fputs(bufz,fp_denied); + fprintf(fp_denied, "%s %s %s %s %s\n",dia,hora,user,ip,urly); denied_count++; } if(strstr(code,"DENIED/401") != 0 || strstr(code,"DENIED/407") != 0) { - sprintf(bufz, "%s %s %s %s %s\n",dia,hora,user,ip,urly); if(fp_authfail) - fputs(bufz,fp_authfail); + fprintf(fp_authfail, "%s %s %s %s %s\n",dia,hora,user,ip,urly); authfail_count++; } } diff --git a/repday.c b/repday.c index db4ec0c..87b8786 100644 --- a/repday.c +++ b/repday.c @@ -80,14 +80,12 @@ void report_day(const char *user) show_sarg(fp_ou, "../.."); fputs("
%s %s
%s %s
%s%s%s%s%s%s%s%s
%s%s%s%s%s%s%s%s
%s%s%s%s%s%s%s%s%s%s
%s%s%s%s%s%s%s%s%s%s
%s%s%s%s
%s%s%s%s
%s%s%s%s
%s%s%s%s
%s%s%s%s%s%s%s%s%s
%s%s%s%s%s%s%s%s%s
%s%s%s%s%s%s
%s%s%s%s%s%s
\n",fp_ou); - sprintf(html,"\n",Title); - fputs(html,fp_ou); + fprintf(fp_ou,"\n",Title); fputs("
%s
%s
\n",fp_ou); fputs("
\n",fp_ou); - sprintf(html,"\n",text[89],period); - fputs(html,fp_ou); + fprintf(fp_ou,"\n",text[89],period); strcpy(wuser,user); if(strstr(wuser,"_") != 0) @@ -118,8 +116,7 @@ void report_day(const char *user) strcpy(name,str2); } - sprintf(html,"\n",text[90],name); - fputs(html,fp_ou); + fprintf(fp_ou,"\n",text[90],name); fputs("\n",fp_ou); fputs("
%s: %s
%s: %s
%s: %s
%s: %s
\n",fp_ou); diff --git a/siteuser.c b/siteuser.c index 7adb880..8b4736f 100644 --- a/siteuser.c +++ b/siteuser.c @@ -41,7 +41,6 @@ void siteuser(void) char general[MAXLEN]; char general2[MAXLEN]; char per[MAXLEN]; - char html[MAXLEN]; char sites[MAXLEN]; char report[MAXLEN]; char period[100]; @@ -101,21 +100,18 @@ void siteuser(void) show_sarg(fp_ou, ".."); fputs("
\n",fp_ou); - sprintf(url,"\n",Title); - fputs(url,fp_ou); + fprintf(fp_ou,"\n",Title); - sprintf(url,"\n",text[89],period); - fputs(url,fp_ou); - sprintf(url,"\n",text[85]); - fputs(url,fp_ou); + fprintf(fp_ou,"\n",text[89],period); + fprintf(fp_ou,"\n",text[85]); fputs("
%s
%s
%s: %s
%s
%s: %s
%s
\n",fp_ou); fputs("
\n",fp_ou); fputs("\n",fp_ou); if(strncmp(strlow(BytesInSitesUsersReport),"yes",3) == 0) - sprintf(url,"\n",text[100],text[91],text[93],text[103]); - else sprintf(url,"\n",text[100],text[91],text[103]); - fputs(url,fp_ou); + fprintf(fp_ou,"\n",text[100],text[91],text[93],text[103]); + else + fprintf(fp_ou,"\n",text[100],text[91],text[103]); user[0]='\0'; ourl[0]='\0'; @@ -206,12 +202,12 @@ void siteuser(void) if(strncmp(strlow(BytesInSitesUsersReport),"yes",3) == 0) { llbytes=my_atoll(obytes); sprintf(wwork2,"%s",fixnum(llbytes,1)); - sprintf(html,"\n",regs,BlockImage,ourl,ourl,wwork2,users); - } else sprintf(html,"\n",regs,BlockImage,ourl,ourl,users); - fputs(html,fp_ou); + fprintf(fp_ou,"\n",regs,BlockImage,ourl,ourl,wwork2,users); + } else + fprintf(fp_ou,"\n",regs,BlockImage,ourl,ourl,users); regs++; ucount=0; - strcpy(users,name); + strcpy(users,name); strcat(users," "); strcpy(ourl,url); strcpy(obytes,nbytes); @@ -219,8 +215,7 @@ void siteuser(void) } if(nsitesusers) { - sprintf(html,"\n",regs,ourl,ourl,users); - fputs(html,fp_ou); + fprintf(fp_ou,"\n",regs,ourl,ourl,users); } unlink(general2); diff --git a/smartfilter.c b/smartfilter.c index 8e73063..caa2e19 100644 --- a/smartfilter.c +++ b/smartfilter.c @@ -31,8 +31,6 @@ void smartfilter_report(void) FILE *fp_in = NULL, *fp_ou = NULL, *fp_user = NULL; char url[MAXLEN]; - char html[MAXLEN]; - char html2[MAXLEN]; char csort[255]; char smart_in[MAXLEN]; char smart_ou[MAXLEN]; @@ -130,9 +128,8 @@ void smartfilter_report(void) fputs("
%s%s%s%s
%s%s%s
%s%s%s%s
%s%s%s
%d%s%s%s%s
%d%s%s%s
%d%s%s%s%s
%d%s%s%s
%d%s%s
%d%s%s
\n",fp_user); if(strcmp(ShowSargInfo,"yes") == 0) { zdate(ftime, DateFormat); - sprintf(html2,"

%s %s-%s %s %s
\n",text[108],URL,PGM,VERSION,text[109],ftime); - fputs(html2,fp_user); - } + fprintf(fp_user,"

%s %s-%s %s %s
\n",text[108],URL,PGM,VERSION,text[109],ftime); + } fputs("\n\n",fp_user); fclose(fp_user); } @@ -146,16 +143,22 @@ void smartfilter_report(void) fputs(" \"http://www.w3.org/TR/html4/loose.dtd\">\n",fp_ou); fputs("\n",fp_user); fputs("\n",fp_user); - sprintf(html," \n",CharSet); - fputs(html,fp_user); + fprintf(fp_user," \n",CharSet); fputs("\n",fp_user); if(strlen(FontFace) > 0) { + /* + Before merging the sprintf and the fputs, the code looked like this: sprintf(html2,"\n",FontFace); fputs(url,fp_user); + The two lines don't use the same buffer so the string formated by sprintf is not the string + written to fp_user. I (fmarchal) assumed it was a typo and replaced it by a fprintf but + that font tag is not valid outside of the body. So, the generated html was likely + containing garbage not rendered by the browser. + */ + fprintf(fp_user,"\n",FontFace); } - sprintf(html2,"\n",BgColor,TxColor,BgImage); - fputs(html2,fp_user); + fprintf(fp_user,"\n",BgColor,TxColor,BgImage); fputs("
\n",fp_user); if(strlen(LogoImage) > 0) fprintf(fp_user,"\n",TiColor,Title); @@ -166,22 +169,18 @@ void smartfilter_report(void) fputs("\n",fp_user); fputs("\n",fp_user); fputs("\n",fp_user); - sprintf(html2,"\n",HeaderBgColor,FontSize,text[98],HeaderBgColor,FontSize,text[111],HeaderBgColor,FontSize,text[110],HeaderBgColor,FontSize,text[91],HeaderBgColor,FontSize,smartheader); - fputs(html2,fp_user); + fprintf(fp_user,"\n",HeaderBgColor,FontSize,text[98],HeaderBgColor,FontSize,text[111],HeaderBgColor,FontSize,text[110],HeaderBgColor,FontSize,text[91],HeaderBgColor,FontSize,smartheader); } - sprintf(html2,"\n",TxBgColor,FontSize,user,TxBgColor,FontSize,ip,TxBgColor,FontSize,data,hora,TxBgColor,FontSize,url,TxBgColor,FontSize,smartcat); - fputs(html2,fp_user); + fprintf(fp_user,"\n",TxBgColor,FontSize,user,TxBgColor,FontSize,ip,TxBgColor,FontSize,data,hora,TxBgColor,FontSize,url,TxBgColor,FontSize,smartcat); - sprintf(html,"\n",TxBgColor,FontSize,user,TxBgColor,FontSize,ip,TxBgColor,FontSize,data,hora,TxBgColor,FontSize,url,TxBgColor,FontSize,smartcat); - fputs(html,fp_ou); + fprintf(fp_ou,"\n",TxBgColor,FontSize,user,TxBgColor,FontSize,ip,TxBgColor,FontSize,data,hora,TxBgColor,FontSize,url,TxBgColor,FontSize,smartcat); } fputs("
%s\n",LogoImage,Width,Height,LogoTextColor,LogoText); fprintf(fp_user,"
%s
%s%s%s%s%s
%s%s%s%s%s
%s%s%s-%s%s%s
%s%s%s-%s%s%s
%s%s%s-%s%s%s
%s%s%s-%s%s%s
\n",fp_ou); if(strcmp(ShowSargInfo,"yes") == 0) { zdate(ftime, DateFormat); - sprintf(html,"

%s %s-%s %s %s
\n",text[108],URL,PGM,VERSION,text[109],ftime); - fputs(html,fp_ou); + fprintf(fp_ou,"

%s %s-%s %s %s
\n",text[108],URL,PGM,VERSION,text[109],ftime); } fputs("\n\n",fp_user); @@ -191,8 +190,7 @@ void smartfilter_report(void) fputs("\n",fp_user); if(strcmp(ShowSargInfo,"yes") == 0) { zdate(ftime, DateFormat); - sprintf(html2,"

%s %s-%s %s %s
\n",text[108],URL,PGM,VERSION,text[109],ftime); - fputs(html2,fp_user); + fprintf(fp_user,"

%s %s-%s %s %s
\n",text[108],URL,PGM,VERSION,text[109],ftime); } fputs("\n\n",fp_user); fclose(fp_user); diff --git a/squidguard_log.c b/squidguard_log.c index bdbd9e3..ef094e5 100644 --- a/squidguard_log.c +++ b/squidguard_log.c @@ -152,8 +152,7 @@ void read_log(char *wentp, FILE *fp_ou) strcpy(user,ip); bzero(ip, 30); } - sprintf(tmp6,"%s %s%s%s %s %s %s %s\n",user,year,mon,day,hour,ip,url,list); - fputs(tmp6, fp_ou); + fprintf(fp_ou,"%s %s%s%s %s %s %s %s\n",user,year,mon,day,hour,ip,url,list); squidguard_count++; } if (fp_in) fclose(fp_in); diff --git a/squidguard_report.c b/squidguard_report.c index f383f38..563967f 100644 --- a/squidguard_report.c +++ b/squidguard_report.c @@ -31,7 +31,6 @@ void squidguard_report(void) FILE *fp_in = NULL, *fp_ou = NULL; char url[MAXLEN]; - char html2[MAXLEN]; char squidguard_in[MAXLEN]; char per[MAXLEN]; char report[MAXLEN]; @@ -89,19 +88,15 @@ void squidguard_report(void) else show_sarg(fp_ou,".."); fputs("
\n",fp_ou); - sprintf(url,"\n",Title); - fputs(url,fp_ou); + fprintf(fp_ou,"\n",Title); - sprintf(url,"\n",text[89],period); - fputs(url,fp_ou); - sprintf(url,"\n",text[120]); - fputs(url,fp_ou); + fprintf(fp_ou,"\n",text[89],period); + fprintf(fp_ou,"\n",text[120]); fputs("
%s
%s
%s: %s
%s
%s: %s
%s
\n",fp_ou); fputs("
\n",fp_ou); fputs("\n",fp_ou); - sprintf(url,"\n",text[98],text[111],text[110],text[91],text[121]); - fputs(url,fp_ou); + fprintf(fp_ou,"\n",text[98],text[111],text[110],text[91],text[121]); while(fgets(buf,sizeof(buf),fp_in)!=NULL) { if (getword(user,sizeof(user),buf,' ')<0 || getword(data2,sizeof(data2),buf,' ')<0 || @@ -182,8 +177,7 @@ void squidguard_report(void) continue; } - sprintf(html2,"\n",name,ip,data,hora,url,url,rule); - fputs(html2,fp_ou); + fprintf(fp_ou,"\n",name,ip,data,hora,url,url,rule); } fputs("
%s%s%s%s%s
%s%s%s%s%s
%s%s%s-%s%s%s
%s%s%s-%s%s%s
\n",fp_ou); diff --git a/topsites.c b/topsites.c index 3f1b26b..3f5fc84 100644 --- a/topsites.c +++ b/topsites.c @@ -155,8 +155,7 @@ void topsites(void) my_lltoa(tnacc,val1,15); my_lltoa(tnbytes,val2,15); my_lltoa(tntime,val3,15); - sprintf(buf,"%s %s %s %s\n",val1,val2,val3,ourl); - fputs(buf, fp_ou); + fprintf(fp_ou,"%s %s %s %s\n",val1,val2,val3,ourl); strcpy(ourl,url); tnacc=0; tnbytes=0; @@ -171,8 +170,7 @@ void topsites(void) my_lltoa(tnacc,val1,15); my_lltoa(tnbytes,val2,15); my_lltoa(tntime,val3,15); - sprintf(buf,"%s %s %s %s\n",val1,val2,val3,ourl); - fputs(buf, fp_ou); + fprintf(fp_ou,"%s %s %s %s\n",val1,val2,val3,ourl); fclose(fp_in); fclose(fp_ou); @@ -225,22 +223,18 @@ void topsites(void) show_sarg(fp_ou, ".."); fputs("
\n",fp_ou); - sprintf(url,"\n",Title); - fputs(url,fp_ou); - - sprintf(url,"\n",text[89],period); - fputs(url,fp_ou); - sprintf(url,"\n",text[83],TopSitesNum,text[84]); - fputs(url,fp_ou); + fprintf(fp_ou,"\n",Title); + + fprintf(fp_ou,"\n",text[89],period); + fprintf(fp_ou,"\n",text[83],TopSitesNum,text[84]); fputs("
%s
%s: %s
%s %s %s
%s
%s: %s
%s %s %s
\n",fp_ou); fputs("
\n",fp_ou); fputs("\n",fp_ou); - sprintf(url," \ + fprintf(fp_ou," \ \ \n", \ text[100],text[91],text[92],text[93],text[99]); - fputs(url,fp_ou); regs=1; ntopsites = 0; @@ -272,8 +266,7 @@ void topsites(void) else BlockImage[0]='\0'; - sprintf(ourl,"\n",regs,BlockImage,url,url,wwork1,wwork2,wwork3); - fputs(ourl,fp_ou); + fprintf(fp_ou,"\n",regs,BlockImage,url,url,wwork1,wwork2,wwork3); regs++; } diff --git a/topuser.c b/topuser.c index 006bae4..70141f6 100644 --- a/topuser.c +++ b/topuser.c @@ -135,10 +135,10 @@ void topuser(void) my_lltoa(tnoucache,val5,15); fprintf(fp_top2,"%s %s %s %s %s %s\n",olduser,val1,val2,val3,val4,val5); - strcpy(olduser,user); + strcpy(olduser,user); ttnbytes+=tnbytes; - ttnacc+=tnacc; - ttnelap+=tnelap; + ttnacc+=tnacc; + ttnelap+=tnelap; ttnincache+=tnincache; ttnoucache+=tnoucache; tnbytes=0; @@ -183,7 +183,6 @@ void topuser(void) my_lltoa(ttnelap,val3,15); my_lltoa(ttnincache,val4,15); my_lltoa(ttnoucache,val5,15); - sprintf(preg,"TOTAL %s %s %s %s %s\n",val1,val2,val3,val4,val5); if (fp_in) fclose(fp_in); if (fp_top2) fclose(fp_top2); @@ -217,7 +216,7 @@ void topuser(void) unlink(top2); - fputs(preg,fp_top1); + fprintf(fp_top1,"TOTAL %s %s %s %s %s\n",val1,val2,val3,val4,val5); fclose(fp_top1); if((fp_top1=fopen(top1,"r"))==NULL) { @@ -422,7 +421,7 @@ void topuser(void) bzero(href2, MAXLEN); bzero(ltext110, 50); sprintf(val1,"%s/d%s.html",dirname,user); - unlink(val1); + unlink(val1); } // if(UserTabFile[0] != '\0' && strstr(user2,".") != 0) { @@ -442,8 +441,8 @@ void topuser(void) if((strcmp(Ip2Name,"yes") == 0) && ((str=(char *) strstr(name, ".")) != (char *) NULL) && - ((str=(char *) strstr(str+1, ".")) != (char *) NULL)) - ip2name(name,sizeof(name)); + ((str=(char *) strstr(str+1, ".")) != (char *) NULL)) + ip2name(name,sizeof(name)); twork=my_atoll(nacc); my_lltoa(twork,nacc,0); @@ -540,9 +539,9 @@ void topuser(void) ouperc=atol(oucac) / ouperc; } else ouperc = 0; - sprintf(wwork1,"%s",fixnum(ttnacc,1)); - sprintf(wwork2,"%s",fixnum(ttnbytes,1)); - sprintf(wwork3,"%s",fixnum2(ttnelap,1)); + sprintf(wwork1,"%s",fixnum(ttnacc,1)); + sprintf(wwork2,"%s",fixnum(ttnbytes,1)); + sprintf(wwork3,"%s",fixnum2(ttnelap,1)); strcpy(hbc1,"class=\"header2\""); strcpy(hbc2,"class=\"header2\""); @@ -584,9 +583,9 @@ void topuser(void) } if(strstr(ReportType,"date_time") != 0) { - if(strstr(TopUserFields,"TOTAL") != 0) + if(strstr(TopUserFields,"TOTAL") != 0) sprintf(preg,"\n",hbc10,text[107],hbc1,wwork1,hbc2,wwork2,hbc3,val4,hbc4,val5,hbc5,val6,hbc6,wwork3); - } else if(strstr(TopUserFields,"TOTAL") != 0) + } else if(strstr(TopUserFields,"TOTAL") != 0) sprintf(preg,"\n",hbc10,text[107],hbc1,wwork1,hbc2,wwork2,hbc3,val4,hbc4,val5,hbc5,val6,hbc6,wwork3); } diff --git a/totday.c b/totday.c index efd08c7..d1caa00 100644 --- a/totday.c +++ b/totday.c @@ -100,8 +100,7 @@ void day_totalize(const char *tmp, const char *user, int indexonly) tused=telap; my_lltoa(telap,val1,15); - sprintf(buf,"%s %s %s\n",odata,ohora,val1); - fputs(buf, fp_ou); + fprintf(fp_ou,"%s %s %s\n",odata,ohora,val1); strcpy(odata,data); strcpy(ohora,hora); strcpy(ohm,hm); @@ -122,8 +121,7 @@ void day_totalize(const char *tmp, const char *user, int indexonly) tused=telap; my_lltoa(telap,val1,15); - sprintf(buf,"%s %s %s\n",data,hora,val1); - fputs(buf, fp_ou); + fprintf(fp_ou,"%s %s %s\n",data,hora,val1); fclose(fp_in); fclose(fp_ou); diff --git a/totger.c b/totger.c index 01d7bfd..1bcbf9c 100644 --- a/totger.c +++ b/totger.c @@ -117,8 +117,7 @@ int totalger(const char *dirname, int debug, const char *outdir) my_lltoa(telap,val3,15); my_lltoa(tincache,val4,15); my_lltoa(toucache,val5,15); - sprintf(url,"TOTAL %s %s %s %s %s\n",val1,val2,val3,val4,val5); - fputs(url,fp_ou); + fprintf(fp_ou,"TOTAL %s %s %s %s %s\n",val1,val2,val3,val4,val5); fclose(fp_ou); return (0); diff --git a/useragent.c b/useragent.c index b467df4..90260a6 100644 --- a/useragent.c +++ b/useragent.c @@ -99,8 +99,7 @@ void useragent(void) if(strlen(user) == 0) strcpy(user,ip); - sprintf(buf,"%s\\%s\\%s\\%s\\\n",ip,data,agent,user); - fputs(buf,fp_ou); + fprintf(fp_ou,"%s\\%s\\%s\\%s\\\n",ip,data,agent,user); user[0]='\0'; } @@ -157,23 +156,20 @@ void useragent(void) else show_sarg(fp_ht,".."); fputs("
%s%s
%s%s%s%s%s
%d%s%s%s%s%s
%d%s%s%s%s%s
%s%s%15s%s%s%s%s
%s%s%15s%s%s%s%s
\n",fp_ht); - sprintf(html,"\n",TiColor,text[105]); - fputs(html,fp_ht); + fprintf(fp_ht,"\n",TiColor,text[105]); fputs("",fp_ht); fputs("
%s
%s
\n",fp_ht); fputs("
\n",fp_ht); - sprintf(html,"\n",HeaderBgColor,FontSize,text[89],TxBgColor,FontSize,idate,fdate); - fputs(html,fp_ht); + fprintf(fp_ht,"\n",HeaderBgColor,FontSize,text[89],TxBgColor,FontSize,idate,fdate); fputs("
%s:%s - %s
%s:%s - %s
\n",fp_ht); fputs("
\n",fp_ht); fputs("",fp_ht); - sprintf(html,"\n",HeaderBgColor,FontSize,HeaderColor,text[98],HeaderBgColor,FontSize,HeaderColor,text[106]); - fputs(html,fp_ou); + fprintf(fp_ou,"\n",HeaderBgColor,FontSize,HeaderColor,text[98],HeaderBgColor,FontSize,HeaderColor,text[106]); while(fgets(buf,sizeof(buf),fp_in)!=NULL) { if (getword(ip,sizeof(ip),buf,'\\')<0) { @@ -196,14 +192,12 @@ void useragent(void) } if(strcmp(user,user_old) != 0) { - sprintf(html,"\n",TxBgColor,FontSize,user,TxBgColor,FontSize,agent); - fputs(html,fp_ht); + fprintf(fp_ht,"\n",TxBgColor,FontSize,user,TxBgColor,FontSize,agent); strcpy(user_old,user); strcpy(agent_old,agent); } else { if(strcmp(agent,agent_old) != 0) { - sprintf(html,"\n",TxBgColor,FontSize,agent); - fputs(html,fp_ht); + fprintf(fp_ht,"\n",TxBgColor,FontSize,agent); strcpy(agent_old,agent); } } @@ -251,16 +245,14 @@ void useragent(void) if(strcmp(agent,agent_old) != 0) { agentdif++; - sprintf(html,"%06d %s\n",agentot,agent_old); - fputs(html,fp_ou); + fprintf(fp_ou,"%06d %s\n",agentot,agent_old); strcpy(agent_old,agent); agentot2+=agentot; agentot=1; } } agentdif++; - sprintf(html,"%06d %s\n",agentot,agent); - fputs(html,fp_ou); + fprintf(fp_ou,"%06d %s\n",agentot,agent); agentot2+=agentot; fclose(fp_in); @@ -291,8 +283,7 @@ void useragent(void) fputs("

\n",fp_ht); fputs("
%s%s
%s%s
%s%s
%s%s
%s
%s
\n",fp_ht); - sprintf(html,"\n",HeaderBgColor,FontSize,HeaderColor,text[106],HeaderBgColor,FontSize,HeaderColor,text[107],HeaderBgColor,FontSize,HeaderColor); - fputs(html,fp_ht); + fprintf(fp_ht,"\n",HeaderBgColor,FontSize,HeaderColor,text[106],HeaderBgColor,FontSize,HeaderColor,text[107],HeaderBgColor,FontSize,HeaderColor); while(fgets(buf,sizeof(buf),fp_in)!=NULL) { buf[strlen(buf)-1]='\0'; @@ -303,15 +294,13 @@ void useragent(void) perc=atoi(tagent) * 100; perc=perc / agentot2; - sprintf(html,"\n",TxBgColor,FontSize,buf,TxBgColor,FontSize,atoi(tagent),TxBgColor,FontSize,perc); - fputs(html,fp_ht); + fprintf(fp_ht,"\n",TxBgColor,FontSize,buf,TxBgColor,FontSize,atoi(tagent),TxBgColor,FontSize,perc); } fputs("
%s%s%%
%s%s%%
%s%d%3.2f
%s%d%3.2f
\n",fp_ht); if(strcmp(ShowSargInfo,"yes") == 0) { zdate(ftime, DateFormat); - sprintf(html,"

%s %s-%s %s %s
\n",text[108],URL,PGM,VERSION,text[109],ftime); - fputs(html,fp_ht); + fprintf(fp_ht,"

%s %s-%s %s %s
\n",text[108],URL,PGM,VERSION,text[109],ftime); } fputs("\n\n\n",fp_ht);