mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2026-01-18 15:12:02 +01:00
258 lines
8.8 KiB
Diff
258 lines
8.8 KiB
Diff
From: Santiago Vila <sanvila@debian.org>
|
|
Subject: diff from procmail-3.22 to procmail-3.23pre
|
|
X-Debian-version: 3.22-1
|
|
|
|
--- a/HISTORY
|
|
+++ b/HISTORY
|
|
@@ -491,8 +491,8 @@
|
|
- Root owned lockfiles aren't bogus
|
|
- A lone trailing '$' wasn't terminated properly when expanded
|
|
Changes to formail:
|
|
- - Replies without the -t flag go to the envelope sender
|
|
- - Replies without "-a Resent-" and -t flag ignore the
|
|
+ - Replies without the -t option go to the envelope sender
|
|
+ - Replies without "-a Resent-" and -t option ignore the
|
|
Resent-* headers
|
|
- Prevent corrupt idcaches by suppressing the -n option when
|
|
splitting with the -D option
|
|
@@ -509,7 +509,7 @@
|
|
Changed the form of tempfile names to make them `more' unique
|
|
and deal with filename length limits more gracefully
|
|
Updated the FAQ and the list of mirrors in the README
|
|
- Documented the exact behavior of lockfile's -! flag
|
|
+ Documented the exact behavior of lockfile's -! option
|
|
Documented the suggested usage of -r vs -rt
|
|
2000/08/25: v3.15
|
|
Changes to procmail:
|
|
@@ -588,7 +588,7 @@
|
|
Changes to lockfile:
|
|
- Include the system mailbox lockfile path in the -v output
|
|
- Resist attempts to use a setuid lockfile command
|
|
- - Fix infinite loop on -l, -r, or -s flag with no value
|
|
+ - Fix infinite loop on -l, -r, or -s option with no value
|
|
Documented formail's treatment of >From_ lines as continuations
|
|
of the From_ line and warned of problems caused by non-RFC822
|
|
field names like 'Old-From '
|
|
@@ -623,3 +623,8 @@
|
|
More paranoia: start to use strlcpy()
|
|
Generate safe temp and maildir filenames when the hostname
|
|
contains / or : by mapping them to \ooo
|
|
+2001/09/13: v3.23pre
|
|
+ Changes to procmail:
|
|
+ - Don't coredump in comsat code if interrupted early
|
|
+ - Correctly handle COMSAT=on
|
|
+ - Once used the 'H' flag would never be cleared
|
|
--- a/patchlevel.h
|
|
+++ b/patchlevel.h
|
|
@@ -1,5 +1,5 @@
|
|
#define VERSION "\
|
|
- v3.22 2001/09/10\n\
|
|
+ v3.23pre 2001/09/13\n\
|
|
Copyright (c) 1990-2001, Stephen R. van den Berg\t<srb@cuci.nl>\n\
|
|
Copyright (c) 1997-2001, Philip A. Guenther\t\t<guenther@sendmail.com>\n\
|
|
\n\
|
|
--- a/src/comsat.c
|
|
+++ b/src/comsat.c
|
|
@@ -9,7 +9,7 @@
|
|
|
|
#ifdef RCS
|
|
static /*const*/char rcsid[]=
|
|
- "$Id: comsat.c,v 1.5 2001/07/03 15:05:47 guenther Exp $";
|
|
+ "$Id: comsat.c,v 1.7 2001/09/13 19:08:49 guenther Exp $";
|
|
#endif
|
|
|
|
#include "procmail.h"
|
|
@@ -92,7 +92,7 @@
|
|
}
|
|
if(newvalid) /* so far, so good */
|
|
{ int s;
|
|
- if(!*chp) /* no service */
|
|
+ if(!chad||!*chp) /* no service */
|
|
chp=BIFF_serviceport; /* new balls please! */
|
|
s=strtol(chp,&chad,10);
|
|
if(chp!=chad) /* the service is not numeric */
|
|
@@ -120,7 +120,7 @@
|
|
{ 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;
|
|
--- a/src/header.h
|
|
+++ b/src/header.h
|
|
@@ -4,12 +4,11 @@
|
|
* "-m nnn" fields encountered should be among them or one of *
|
|
* the special From_, Article_ or X- fields). *
|
|
* *
|
|
- * If you need to add one (be sure to update "cdigest" below as *
|
|
- * well!), drop me a mail, I might be interested in including *
|
|
- * it in the next release. *
|
|
+ * If you need to add one, drop me an email at bug@procmail.org. *
|
|
+ * I might be interested in including it in the next release. *
|
|
* *
|
|
************************************************************************/
|
|
-/*$Id: header.h,v 1.44 1999/07/06 06:12:22 guenther Exp $*/
|
|
+/*$Id: header.h,v 1.45 2001/09/24 03:38:08 guenther Exp $*/
|
|
|
|
X(returnpath, "Return-Path:") /* RFC 822 */
|
|
X(received, "Received:") /* ditto ... */
|
|
--- a/src/lmtp.c
|
|
+++ b/src/lmtp.c
|
|
@@ -7,7 +7,7 @@
|
|
************************************************************************/
|
|
#ifdef RCS
|
|
static /*const*/char rcsid[]=
|
|
- "$Id: lmtp.c,v 1.13 2001/06/28 21:44:28 guenther Exp $"
|
|
+ "$Id: lmtp.c,v 1.14 2001/09/23 20:17:57 guenther Exp $"
|
|
#endif
|
|
#include "procmail.h"
|
|
#ifdef LMTP
|
|
@@ -708,7 +708,7 @@
|
|
got-=in-p; /* correct for what disappeared */
|
|
}
|
|
while(left-=got); /* change listed buffer size */
|
|
- *(long*)statep=state; /* save state */
|
|
+ *(int*)statep=state; /* save state */
|
|
return 0;
|
|
}
|
|
|
|
@@ -765,7 +765,7 @@
|
|
got-=in-p; /* correct for what disappeared */
|
|
}
|
|
while(left-=got); /* change listed buffer size */
|
|
- *(long*)statep=state; /* save state */
|
|
+ *(int*)statep=state; /* save state */
|
|
return 0;
|
|
}
|
|
|
|
--- a/src/memblk.c
|
|
+++ b/src/memblk.c
|
|
@@ -8,7 +8,7 @@
|
|
************************************************************************/
|
|
#ifdef RCS
|
|
static /*const*/char rcsid[]=
|
|
- "$Id: memblk.c,v 1.6 2001/06/28 22:55:09 guenther Exp $"
|
|
+ "$Id: memblk.c,v 1.7 2001/09/18 21:59:08 guenther Exp $"
|
|
#endif
|
|
#include "procmail.h"
|
|
#include "robust.h"
|
|
@@ -51,11 +51,11 @@
|
|
{
|
|
#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 @@
|
|
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 @@
|
|
}
|
|
}
|
|
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 @@
|
|
}
|
|
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;
|
|
}
|
|
|
|
--- 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 */
|
|
--- a/src/pipes.c
|
|
+++ b/src/pipes.c
|
|
@@ -8,7 +8,7 @@
|
|
************************************************************************/
|
|
#ifdef RCS
|
|
static /*const*/char rcsid[]=
|
|
- "$Id: pipes.c,v 1.73 2001/08/27 08:43:59 guenther Exp $";
|
|
+ "$Id: pipes.c,v 1.74 2001/09/18 22:01:27 guenther Exp $";
|
|
#endif
|
|
#include "procmail.h"
|
|
#include "robust.h"
|
|
@@ -145,7 +145,9 @@
|
|
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 @@
|
|
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);
|
|
--- a/src/procmail.c
|
|
+++ b/src/procmail.c
|
|
@@ -14,7 +14,7 @@
|
|
************************************************************************/
|
|
#ifdef RCS
|
|
static /*const*/char rcsid[]=
|
|
- "$Id: procmail.c,v 1.183 2001/08/31 04:57:36 guenther Exp $";
|
|
+ "$Id: procmail.c,v 1.184 2001/09/14 05:54:19 guenther Exp $";
|
|
#endif
|
|
#include "../patchlevel.h"
|
|
#include "procmail.h"
|
|
@@ -652,8 +652,7 @@
|
|
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,maxindex(flags)); /* clear the flags */
|
|
for(tolock=0,locknext=0;;)
|
|
{ chp=skpspace(chp);
|
|
switch(i= *chp++)
|