From 898e9514bc889b4a540f667efed95a5af101c824 Mon Sep 17 00:00:00 2001 From: Li xin Date: Tue, 2 Dec 2014 07:00:36 +0900 Subject: [PATCH 1/3] From debian to fix compile errors Signed-off-by: Li Xin --- src/Makefile.0 | 7 +++---- src/autoconf | 64 +++++++++++++------------------------------------------- src/comsat.c | 65 +++++++++++++++++++-------------------------------------- src/fields.c | 6 +++--- src/foldinfo.h | 2 +- src/formail.c | 6 +++--- src/formisc.c | 2 +- src/formisc.h | 2 +- src/mailfold.c | 14 ++++++++++--- src/manconf.c | 2 +- src/memblk.c | 24 ++++++++++----------- src/memblk.h | 2 +- src/network.h | 10 ++------- src/pipes.c | 10 ++++----- src/procmail.c | 3 +-- src/recommend.c | 2 +- 16 files changed, 81 insertions(+), 140 deletions(-) diff --git a/src/Makefile.0 b/src/Makefile.0 index 6eb5b51..15a2039 100644 --- a/src/Makefile.0 +++ b/src/Makefile.0 @@ -40,7 +40,7 @@ multigram: multigram.$(O) $(MG_OBJ) setid @cd ..; $(MAKE) config.check _autotst: _autotst.$(O) sublib.c sublib.h - $(CC) $(CFLAGS) $@.$(O) -o $@ $(LDFLAGS) + gcc $@.$(O) -o $@ $(LDFLAGS) ../autoconf.h: autoconf Makefile ../patchlevel.h @echo No this was not make -n >make_n @@ -175,17 +175,16 @@ recommend: recommend.$(O) sublib.$(O) ../man/man.sed: manconf.c ../autoconf.h ../config.h includes.h procmail.h ../man/man.sed: ../patchlevel.h - @$(CC) $(CFLAGS) "-DBINDIR=\"$(VISIBLE_BINDIR)\"" -o _autotst \ + gcc "-DBINDIR=\"$(VISIBLE_BINDIR)\"" -o _autotst \ manconf.c $(LDFLAGS) @./_autotst $@ @echo Housekeeping file >$@ - @$(RM) _autotst clean: $(RM) -r _locktest $(RM) procmail.$(O) $(PM_OBJ) lockfile.$(O) $(LF_OBJ) formail.$O \ $(FM_OBJ) multigram.$(O) $(MG_OBJ) $(BINSS) multigram ../autoconf.h \ - _autotst* lookfor _locktst* grepfor recommend recommend.$(O) manconf \ + lookfor _locktst* grepfor recommend recommend.$(O) manconf \ _Makefile lock.log *core* targetdir.h setid setid.$(O) gethome \ gethome.$(O) make_n realloc.log diff --git a/src/autoconf b/src/autoconf index 1cb4c42..ff78048 100755 --- a/src/autoconf +++ b/src/autoconf @@ -68,8 +68,6 @@ # #define NOfsync #Ok #define endpwent() #Ok #define endgrent() -#Ok #define endhostent() -#Ok #define endservent() #Ok #define endprotoent() # #define h_0addr_list h_addr #Ok #define NOpw_passwd @@ -896,7 +894,7 @@ int main(){int i=0; {uid_t vuid_t;i+=vuid_t=1;} {gid_t vgid_t;i+=vgid_t=1;} #ifndef NO_COMSAT - {struct hostent vhostent;i+=!(vhostent.h_addr_list=0);} + {struct addrinfo res; i+=!(res.ai_socktype=0);} #endif #ifndef NOuname {struct utsname vutsname;i+=!(*vutsname.nodename='\0');} @@ -917,8 +915,6 @@ do test -z "$i3" && grepfor mode_t 'typedef int mode_t;' && i3=I test -z "$i4" && grepfor uid_t 'typedef int uid_t;' && i4=I test -z "$i5" && grepfor gid_t 'typedef int gid_t;' && i5=I - test -z "$i6" && grepfor h_addr_list '#define h_0addr_list h_addr' && i6=I - test -z "$i6" && grepfor hostent '#define h_0addr_list h_addr' && i6=I test -z "$i6" && grepfor member '#define h_0addr_list h_addr' && i6=I test -z "$i7" && grepfor utsname "#define NOuname \ /* is there, but empty */" && i7=I @@ -1048,8 +1044,12 @@ int main(){char a[2]; {struct utsname b;uname(&b);} #endif #ifndef NO_COMSAT - gethostbyname("0");getprotobyname(COMSATprotocol);endhostent();endservent(); - endprotoent(); + { + struct addrinfo *res, hints; + memset(&hints, '\0', sizeof(hints)); + if(getaddrinfo(COMSAThost,BIFF_serviceport,&hints,&res)) + freeaddrinfo(res); + } #endif _exit(0); return 0;} @@ -1103,14 +1103,9 @@ grepfor uname "\ /* defines it, the libraries don't */" grepfor endpwent '#define endpwent()' grepfor endgrent '#define endgrent()' -if grepfor gethostbyname '#define NO_COMSAT' +if grepfor getaddrinfo '#define NO_COMSAT' then : -else - grepfor getprotobyname '#define UDP_protocolno 17' - grepfor endhostent '#define endhostent()' - grepfor endservent '#define endservent()' - grepfor endprotoent '#define endprotoent()' fi grepfor strstr '#define SLOWstrstr' || grepfor clock '#define SLOWstrstr' @@ -1239,39 +1234,9 @@ int main(argc,argv)int argc;const char*argv[]; printf("/* Insufficient memory to perform the benchmark! */\n"); #endif /* SLOWstrstr */ #ifndef NO_COMSAT -#ifndef UDP_protocolno - ;{ const struct protoent*p; - if(p=getprotobyname(COMSATprotocol)) - { printf("#define UDP_protocolno %d\n",p->p_proto); -#else - ;{ if(1) - { -#endif - ;{ const struct servent*serv; - if(serv=getservbyname(COMSATservice,COMSATprotocol)) - printf("#define BIFF_serviceport \"%d\"\n", - ntohs(serv->s_port)); - } -#ifdef AF_INET - ;{ const struct hostent*host; - if(!strcmp("localhost",COMSAThost)&& - (host=gethostbyname(COMSAThost))&& - host->h_0addr_list&&host->h_addrtype==AF_INET&& - host->h_length) - { int j=host->h_length; - const unsigned char*ad=(void*)host->h_0addr_list; - printf("#define IP_localhost {"); - printf("%d",*ad++); - while(--j) - printf(",%d",*ad++); - puts("}"); - } - } +#ifndef AF_INET + puts("#define NO_COMSAT"); #endif /* AF_INET */ - } - else - puts("#define NO_COMSAT"); - } #endif /* NO_COMSAT */ ;{ unsigned long s=(size_t)~0;int bits; for(bits=1;s>>=1;bits++); @@ -1470,15 +1435,14 @@ cat /usr/lib/sendmail.cf /etc/sendmail.cf /etc/mail/sendmail.cf 2>$DEVNULL | grep 'Mlocal.*procmail' >$DEVNULL || echo '#define CF_no_procmail_yet' >>$ACONF -cat /usr/lib/sendmail.cf /etc/sendmail.cf /etc/mail/sendmail.cf 2>$DEVNULL | - grep '^V' >$DEVNULL || - echo '#define buggy_SENDMAIL' >>$ACONF +# cat /usr/lib/sendmail.cf /etc/sendmail.cf /etc/mail/sendmail.cf 2>$DEVNULL | +# grep '^V' >$DEVNULL || +# echo '#define buggy_SENDMAIL' >>$ACONF lpath='/bin' bins="/bin" -for newd in /usr/bin /usr/ucb /usr/5bin $BINDIR /local/bin /usr/local/bin \ - /global/bin /usr/bin/X11 /usr/X*/bin +for newd in /usr/bin $BINDIR /usr/bin/X11 /usr/X*/bin do if test -d $newd then diff --git a/src/comsat.c b/src/comsat.c index 77dba34..5082b16 100644 --- a/src/comsat.c +++ b/src/comsat.c @@ -27,7 +27,8 @@ static /*const*/char rcsid[]= #include "comsat.h" static int csvalid; /* is it turned on with a good address? */ -static struct sockaddr_in csaddr; +static struct addrinfo cai; +static struct sockaddr *csaddr; static char*cslastf,*cslgname; void setlfcs(folder)const char*folder; /* set lastfolder for comsat */ @@ -62,56 +63,32 @@ void setlgcs(name)const char*name; /* set logname for comsat */ } int setcomsat(chp)const char*chp; -{ char*chad;int newvalid; struct sockaddr_in newaddr; +{ char*chad;int newvalid; struct addrinfo *res, hints; chad=strchr(chp,SERV_ADDRsep); /* @ separator? */ if(!chad&&!renvint(-1L,chp)) return csvalid=0; /* turned off comsat */ newvalid=1; if(chad) *chad++='\0'; /* split the specifier */ + if(!chad||!*chp) /* no service */ + chp=BIFF_serviceport; /* new balls please! */ if(!chad||!*chad) /* no host */ -#ifndef IP_localhost /* Is "localhost" preresolved? */ chad=COMSAThost; /* nope, use default */ -#else /* IP_localhost */ - { static const unsigned char ip_localhost[]=IP_localhost; - newaddr.sin_family=AF_INET; - tmemmove(&newaddr.sin_addr,ip_localhost,sizeof ip_localhost); - } - else -#endif /* IP_localhost */ - { const struct hostent*host; /* what host? paranoid checks */ - if(!(host=gethostbyname(chad))||!host->h_0addr_list) - { bbzero(&newaddr.sin_addr,sizeof newaddr.sin_addr); - newvalid=0; /* host can't be found, too bad */ - } - else - { newaddr.sin_family=host->h_addrtype; /* address number found */ - tmemmove(&newaddr.sin_addr,host->h_0addr_list,host->h_length); - } - endhostent(); - } - if(newvalid) /* so far, so good */ - { int s; - if(!*chp) /* no service */ - chp=BIFF_serviceport; /* new balls please! */ - s=strtol(chp,&chad,10); - if(chp!=chad) /* the service is not numeric */ - newaddr.sin_port=htons((short)s); /* network order */ - else - { const struct servent*serv; - serv=getservbyname(chp,COMSATprotocol); /* so get its no. */ - if(serv) - newaddr.sin_port=serv->s_port; - else - { newaddr.sin_port=htons((short)0); /* no such service */ - newvalid=0; - } - endservent(); - } - } + bzero(&hints,sizeof(hints)); + hints.ai_socktype=SOCK_DGRAM; + hints.ai_flags=AI_ADDRCONFIG; + if(getaddrinfo(chad,chp,&hints,&res)) + newvalid=0; + onguard(); /* update the address atomically */ if(csvalid=newvalid) - tmemmove(&csaddr,&newaddr,sizeof(newaddr)); + { if(csaddr) + free(csaddr); + csaddr=malloc(res->ai_addrlen); + tmemmove(csaddr,res->ai_addr,res->ai_addrlen); + tmemmove(&cai,res,sizeof(cai)); + freeaddrinfo(res); + } offguard(); return newvalid; } @@ -120,7 +97,7 @@ void sendcomsat(folder)const char*folder; { int s;const char*p; if(!csvalid||!buf) /* is comat on and set to a valid address? */ return; - if(!*cslgname||strlen(cslgname)+2>linebuf) /* is $LOGNAME bogus? */ + if(!cslgname||!*cslgname||strlen(cslgname)+2>linebuf)/* is $LOGNAME bogus? */ return; if(!(p=folder?folder:cslastf)) /* do we have a folder? */ return; @@ -132,8 +109,8 @@ void sendcomsat(folder)const char*folder; } strlcat(buf,COMSATxtrsep,linebuf); /* custom seperator */ strlcat(buf,p,linebuf); /* where was it delivered? */ - if((s=socket(AF_INET,SOCK_DGRAM,UDP_protocolno))>=0) - { sendto(s,buf,strlen(buf),0,(struct sockaddr*)&csaddr,sizeof(csaddr)); + if((s=socket(cai.ai_family,cai.ai_socktype,cai.ai_protocol))>=0) + { sendto(s,buf,strlen(buf),0,csaddr,cai.ai_addrlen); rclose(s); yell("Notified comsat:",buf); } diff --git a/src/fields.c b/src/fields.c index a2bd77f..37ed154 100644 --- a/src/fields.c +++ b/src/fields.c @@ -110,16 +110,16 @@ void dispfield(p)register const struct field*p; /* try and append one valid field to rdheader from stdin */ int readhead P((void)) { int idlen; - getline(); + get_line(); if((idlen=breakfield(buf,buffilled))<=0) /* not the start of a valid field */ return 0; if(idlen==STRLEN(FROM)&&eqFrom_(buf)) /* it's a From_ line */ { if(rdheader) return 0; /* the From_ line was a fake! */ - for(;buflast=='>';getline()); /* gather continued >From_ lines */ + for(;buflast=='>';get_line()); /* gather continued >From_ lines */ } else - for(;;getline()) /* get the rest of the continued field */ + for(;;get_line()) /* get the rest of the continued field */ { switch(buflast) /* will this line be continued? */ { case ' ':case '\t': /* yep, it sure is */ continue; diff --git a/src/foldinfo.h b/src/foldinfo.h index 9e4ebb6..797f9be 100644 --- a/src/foldinfo.h +++ b/src/foldinfo.h @@ -10,7 +10,7 @@ #define ft_lock(type) ((type)>ft_MAILDIR) /* kernel lock fd */ #define ft_atime(type) ((type)==ft_FILE) /* force atime < mtime */ -#define ft_dotlock(type) ((type)==ft_FILE) /* dotlock $DEFAULT */ +#define ft_dotlock(type) ((type)>ft_MAILDIR) /* dotlock $DEFAULT */ #define ft_delim(type) ((type)==ft_FILE) /* add MMDF delim */ #define ft_checkcloser(type) ((type)>ft_MH) #define ft_forceblank(type) ((type)!=ft_MAILDIR) /* force blank line at end */ diff --git a/src/formail.c b/src/formail.c index fe5e6be..1f5c9dd 100644 --- a/src/formail.c +++ b/src/formail.c @@ -758,9 +758,9 @@ startover: lputssn(buf,buffilled),ctlength-=buffilled,buffilled=lnl=0; ;{ int tbl=buflast,lwr='\n'; while(--ctlength>=0&&tbl!=EOF) /* skip Content-Length: bytes */ - lnl=lwr==tbl&&lwr=='\n',putcs(lwr=tbl),tbl=getchar(); + lnl=lwr==tbl&&lwr=='\n',lputcs(lwr=tbl),tbl=getchar(); if((buflast=tbl)=='\n'&&lwr!=tbl) /* just before a line break? */ - putcs('\n'),buflast=getchar(); /* wrap up loose end */ + lputcs('\n'),buflast=getchar(); /* wrap up loose end */ } if(!quiet&&ctlength>0) { charNUM(num,ctlength); @@ -819,7 +819,7 @@ splitit: { if(!lnl) /* did the previous mail end with an empty line? */ { if(split) /* gobble up the next start separator */ { buffilled=0; #ifdef sMAILBOX_SEPARATOR - getline();buffilled=0; /* but only if it's defined */ + get_line();buffilled=0; /* but only if it's defined */ #endif if(buflast!=EOF) /* if any */ goto splitit; diff --git a/src/formisc.c b/src/formisc.c index d6cab90..338733b 100644 --- a/src/formisc.c +++ b/src/formisc.c @@ -115,7 +115,7 @@ void loadchar(c)const int c; /* append one character to buf */ buf[buffilled++]=c; } -int getline P((void)) /* read a newline-terminated line */ +int get_line P((void)) /* read a newline-terminated line */ { if(buflast==EOF) /* at the end of our Latin already? */ { loadchar('\n'); /* fake empty line */ return EOF; /* spread the word */ diff --git a/src/formisc.h b/src/formisc.h index 1c4ca20..f25211c 100644 --- a/src/formisc.h +++ b/src/formisc.h @@ -17,4 +17,4 @@ void char* skipwords P((char*start)); int - getline P((void)); + get_line P((void)); diff --git a/src/mailfold.c b/src/mailfold.c index 917b502..6c8bcf4 100644 --- a/src/mailfold.c +++ b/src/mailfold.c @@ -30,6 +30,7 @@ static /*const*/char rcsid[]= int logopened,rawnonl; off_t lasttell; +static int trunced; static long lastdump; static volatile int mailread; /* if the mail is completely read in already */ static struct dyna_array confield; /* escapes, concatenations */ @@ -81,6 +82,7 @@ long dump(s,type,source,len)const int s,type;const char*source; long len; { int i;long part; lasttell=i= -1;SETerrno(EBADF); + trunced=0; if(s>=0) { if(ft_lock(type)&&(lseek(s,(off_t)0,SEEK_END),fdlock(s))) nlog("Kernel-lock failed\n"); @@ -120,13 +122,18 @@ jin: while(part&&(i=rwrite(s,source,BLKSIZ wasn't a file */ + if ((i||len)&&lasttell>=0) + { int serrno=errno; + if(!ftruncate(s,lasttell)) trunced=1; + SETerrno(serrno); + } if(ft_lock(type)) { int serrno=errno; /* save any error information */ if(fdunlock()) nlog("Kernel-unlock failed\n"); SETerrno(serrno); } - i=rclose(s)||i; + i=rclose(s)||i; /* if this fails, we should truncate, but it's too late */ } /* return an error even if nothing was to be sent */ return i&&!len?-1:len; } @@ -237,7 +244,7 @@ dumpf: { switch(errno) #endif default:writeerr(buf); } - if(lasttell>=0&&!truncate(boxname,lasttell)&&(logopened||verbose)) + if(lasttell>=0&&trunced&&(logopened||verbose)) nlog("Truncated file to former size\n"); /* undo garbage */ ret0: return 0; } @@ -378,7 +385,8 @@ void readmail(rhead,tobesent)const long tobesent; dfilled=mailread=0; else if(rhead) /* only read in a new header */ { memblk new; - dfilled=mailread=0;makeblock(&new,0);readdyn(&new,&dfilled,0); + dfilled=mailread=0;makeblock(&new,0); + readdyn(&new,&dfilled,thebody-themail.p); if(tobesent>dfilled&&isprivate) /* put it in place here */ { tmemmove(themail.p+dfilled,thebody,filled-=tobesent); tmemmove(themail.p,new.p,dfilled); diff --git a/src/manconf.c b/src/manconf.c index a9e9f1c..5c8ec36 100644 --- a/src/manconf.c +++ b/src/manconf.c @@ -233,7 +233,7 @@ a security violation was found (e.g. \1.B \2-@PRESERVOPT@\1or variable\ \2-@PRESERVOPT@\1and\1.BR \2-@FROMWHOPT@ .\1"); pc("LMTPOPT",LMTPOPT); #else - ps("LMTPOPTdesc","");ps("LMTPusage",""); + ps("LMTPOPTdesc","");ps("LMTPusage","\1"); #endif pname("INIT_UMASK",0);printf("0%lo/g\n",(unsigned long)INIT_UMASK);lines--; pn("DEFlinebuf",DEFlinebuf); diff --git a/src/memblk.c b/src/memblk.c index e2f13f0..97e02d3 100644 --- a/src/memblk.c +++ b/src/memblk.c @@ -51,11 +51,11 @@ void lockblock(mb)memblk*const mb; { #ifdef USE_MMAP if(mb->fd>=0) - { long len=mb->len+1; - if(munmap(mb->p,len)) - mmapfailed(len); /* don't want to continue here */ - if((mb->p=mmap(0,len,PROT_READ,MAP_PRIVATE,mb->fd,(off_t)0))==MAP_FAILED) - mmapfailed(len); + { long mlen=mb->len+1; + if(munmap(mb->p,mlen)) + mmapfailed(mlen); /* don't want to continue here */ + if((mb->p=mmap(0,mlen,PROT_READ,MAP_PRIVATE,mb->fd,(off_t)0))==MAP_FAILED) + mmapfailed(mlen); close(mb->fd); mb->fd=ropen(devnull,O_RDWR,0); /* XXX Perhaps -1 is better? */ } @@ -77,8 +77,8 @@ int resizeblock(mb,len,nonfatal)memblk*const mb;const long len; strcpy(filename,MMAP_DIR); if(unique(filename,strchr(filename,'\0'),MMAP_FILE_LEN,MMAP_PERM,0,0)&& (mb->fd=ropen(filename,O_RDWR,MMAP_PERM),unlink(filename),mb->fd>=0)) - { mb->filelen=len; - if(lseek(mb->fd,mb->filelen-1,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1)) + { mb->filelen=len+1; + if(lseek(mb->fd,len,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1)) dropf: { close(mb->fd);mb->fd= -1; if(verbose)nlog("Unable to extend or use tempfile"); } @@ -98,9 +98,9 @@ dropf: { close(mb->fd);mb->fd= -1; } } if(mb->fd>=0) - { if(len>mb->filelen) /* need to extend? */ - { mb->filelen=len; - if(lseek(mb->fd,mb->filelen-1,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1)) + { if(len>=mb->filelen) /* need to extend? */ + { mb->filelen=len+1; + if(lseek(mb->fd,len,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1)) { char*p=malloc(len+1); /* can't extend, switch to malloc */ tmemmove(p,mb->p,mb->len); munmap(mb->p,mb->len+1); @@ -124,9 +124,9 @@ mmap: if((mb->p=mmap(0,len+1,P_RW,MAP_SHARED,mb->fd,(off_t)0))==MAP_FAILED) } else mb->p=realloc(mb->p,len+1); - mb->len=len+1; - mb->p[len]='\0'; + mb->len=len; ret1: + mb->p[len]='\0'; return 1; } diff --git a/src/memblk.h b/src/memblk.h index 6fd1d1d..b57f369 100644 --- a/src/memblk.h +++ b/src/memblk.h @@ -1,6 +1,6 @@ typedef struct memblk { char*p; /* where it starts */ - long len; /* currently allocated size */ + long len; /* current size, not including trailing NUL */ #ifdef USE_MMAP off_t filelen; /* how long is the file */ int fd; /* file which is mmap()ed */ diff --git a/src/network.h b/src/network.h index d7d08f2..b09b6c4 100644 --- a/src/network.h +++ b/src/network.h @@ -1,19 +1,13 @@ /*$Id: network.h,v 1.7 1997/04/02 03:15:41 srb Exp $*/ -#include /* socket() sendto() AF_INET +#include /* socket() sendto() */ /* SOCK_DGRAM */ -#include /* gethostbyname() getservbyname() - /* getprotobyname() */ -#include /* htons() struct sockaddr_in */ +#include /* getaddrinfo() */ #ifndef BIFF_serviceport #define BIFF_serviceport COMSATservice #endif -#ifndef h_0addr_list -#define h_0addr_list h_addr_list[0] /* POSIX struct member */ -#endif - #ifndef NO_const /* since network.h is outside the autoconf const check */ #ifdef const /* loop, we need this backcheck for some systems */ #undef const diff --git a/src/pipes.c b/src/pipes.c index 1fdb9e6..7754300 100644 --- a/src/pipes.c +++ b/src/pipes.c @@ -145,7 +145,9 @@ int pipthrough(line,source,len)char*line,*source;const long len; if(Stdout) { *(eq=strchr(Stdout,'\0')-1)='\0'; /* chop the '=' */ if(!(backblock=getenv(Stdout))) /* no current value? */ - PRDB=PWRB= -1; + { PRDB=PWRB= -1; + backlen=0; + } else { backlen=strlen(backblock); goto pip; @@ -155,9 +157,7 @@ int pipthrough(line,source,len)char*line,*source;const long len; pip: rpipe(pbackfd); rpipe(pinfd); /* main pipes setup */ if(!(pidchild=sfork())) /* create a sending procmail */ - { if(Stdout&&backblock) - backlen=strlen(backblock); - else + { if(!Stdout) backblock=source,backlen=len; childsetup();rclose(PRDI);rclose(PRDB); rpipe(poutfd);rclose(STDOUT); @@ -194,7 +194,7 @@ perr: progerr(line,excode,pwait==4); /* I'm going to tell my mommy! */ makeblock(&temp,Stdfilled); tmemmove(temp.p,Stdout,Stdfilled); readdyn(&temp,&Stdfilled,Stdfilled+backlen+1); - Stdout=realloc(Stdout,&Stdfilled+1); + Stdout=realloc(Stdout,Stdfilled+1); tmemmove(Stdout,temp.p,Stdfilled+1); freeblock(&temp); retStdout(Stdout,pwait&&pipw,!backblock); diff --git a/src/procmail.c b/src/procmail.c index 4a232f2..2bb449b 100644 --- a/src/procmail.c +++ b/src/procmail.c @@ -652,8 +652,7 @@ commint:do skipspace(); /* skip whitespace */ nrcond= -1; if(tolock) /* clear temporary buffer for lockfile name */ free(tolock); - for(i=maxindex(flags);i;i--) /* clear the flags */ - flags[i]=0; + bbzero(flags,sizeof(flags)); /* clear the flags */ for(tolock=0,locknext=0;;) { chp=skpspace(chp); switch(i= *chp++) diff --git a/src/recommend.c b/src/recommend.c index 5d41e01..9002268 100644 --- a/src/recommend.c +++ b/src/recommend.c @@ -47,7 +47,7 @@ int main(argc,argv)const int argc;const char*const argv[]; printf("chmod %lo %s\n",(unsigned long)(sgid|PERMIS),argv[2]); else if(chmdir==1) goto nogchmod; - if(chmdir) + if(0) printf("chmod %c+w %s/.\n",chmdir==1?'g':'a',mailspooldir); nogchmod: return EXIT_SUCCESS; -- 1.8.4.2