--- util.c.orig Fri Sep 10 10:54:54 2004 +++ util.c.orig Fri Sep 10 11:03:06 2004 @@ -98,6 +98,7 @@ void builddia(char *dia, char *mes, char *ano, char *df, char *wdata) +/* dia and ano: char[3] */ { char ndia[9]; char nmes[3]; @@ -107,18 +108,21 @@ nmes[0]='\0'; for(x=0; x<=12; x++) { - if(strcmp(mtab1[x],mes) == 0) - strcpy(nmes,mtab2[x]); + if(strcmp(mtab1[x],mes) == 0) { + strncpy(nmes,mtab2[x],sizeof(nmes)-1); + nmes[sizeof(nmes)-1]=0; + } } - sprintf(wdata,"%s%s%s",ano,nmes,dia); + snprintf(wdata,6,"%s%s%s",ano,nmes,dia); if(strncmp(df,"u",1) != 0) - sprintf(ndia,"%s/%s/%s",dia,nmes,ano); + snprintf(ndia,sizeof(ndia),"%s/%s/%s",dia,nmes,ano); else - sprintf(ndia,"%s/%s/%s",nmes,dia,ano); + snprintf(ndia,sizeof(ndia),"%s/%s/%s",nmes,dia,ano); - strcpy(dia,ndia); + strncpy(dia,ndia,sizeof(dia)-1); + dia[sizeof(dia)-1]=0; return;