diff options
author | Nathan Rennie-Waldock <nathan.renniewaldock@gmail.com> | 2017-12-11 08:13:13 +0000 |
---|---|---|
committer | Leonardo Arena <rnalrd@alpinelinux.org> | 2017-12-13 09:45:50 +0000 |
commit | b7237382f0459b1c33c578412fac2cc0bb2c1cbb (patch) | |
tree | 863b97f73ffb8a5f7c213411cefdebfd02131a84 /main/procmail | |
parent | 578921c6c57745e3159f34e994fb72008d5368a0 (diff) | |
download | aports-b7237382f0459b1c33c578412fac2cc0bb2c1cbb.tar.bz2 aports-b7237382f0459b1c33c578412fac2cc0bb2c1cbb.tar.xz |
main/procmail: import procmail-3.23pre patch from Debian
Fixes #8259
Diffstat (limited to 'main/procmail')
-rw-r--r-- | main/procmail/APKBUILD | 12 | ||||
-rw-r--r-- | main/procmail/procmail-3.23pre.patch | 257 |
2 files changed, 261 insertions, 8 deletions
diff --git a/main/procmail/APKBUILD b/main/procmail/APKBUILD index d3672c381b..39fbc63190 100644 --- a/main/procmail/APKBUILD +++ b/main/procmail/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Carlo Landmeter <clandmeter@gmail.com> pkgname=procmail pkgver=3.22 -pkgrel=2 +pkgrel=3 pkgdesc="Highly configurable auto mail processing" url="http://www.procmail.org" arch="all" @@ -15,6 +15,7 @@ subpackages="$pkgname-doc" source="ftp://ftp.informatik.rwth-aachen.de/pub/packages/procmail/procmail-$pkgver.tar.gz procmail-3.22-getline.patch CVE-2014-3618.patch + procmail-3.23pre.patch " _builddir="$srcdir"/procmail-$pkgver @@ -43,12 +44,7 @@ package() { install -m644 examples/* ${pkgdir}/usr/share/doc/${pkgname}/examples/ } -md5sums="1678ea99b973eb77eda4ecf6acae53f1 procmail-3.22.tar.gz -cf8e5d4854050ab0c836e07406a3dfa9 procmail-3.22-getline.patch -a24e86941e3357ef4fe51e2ec02b32b1 CVE-2014-3618.patch" -sha256sums="087c75b34dd33d8b9df5afe9e42801c9395f4bf373a784d9bc97153b0062e117 procmail-3.22.tar.gz -aaa5ce562e5ef65f56a0225eedda3fcc7ab2938da6097ed4d9b11abf861929de procmail-3.22-getline.patch -024e6d599abf585d181d8871c5dd69bf9480fee177832a72e7240d351b7954df CVE-2014-3618.patch" sha512sums="3d0658329a55957a8d5741e03b0853b030c4524acef30641663213aa9eefc8264f8cc2b68a00a89e5f9f0f7c916c41a42e1b6c8df562c545ba97d8ab9049a936 procmail-3.22.tar.gz b0a908a04d1af27b3ff98326d00d2dde3e6c0ed0d63eec1884bec6a5e9e8d8846140993322ef609b4a7eb882f077581b5a9d56d81c8160b7c29ca95a3aaca868 procmail-3.22-getline.patch -2d7f9983dd49afcb33de5a856bdc21cfd972b50e8df5ba46b2f61a521f32d842e50f73b34e32f8adbab2acb572d8da4f512bc9f7a2a909584a7b15be9ad9cfcd CVE-2014-3618.patch" +2d7f9983dd49afcb33de5a856bdc21cfd972b50e8df5ba46b2f61a521f32d842e50f73b34e32f8adbab2acb572d8da4f512bc9f7a2a909584a7b15be9ad9cfcd CVE-2014-3618.patch +2048e3098daff1cae351dc8212d716f07ed47cd7be64af661e795f3d77c08a082d07ef23e04288f0922b4eceb114917eac2c67046ac7e55146584dcf7e1fadc2 procmail-3.23pre.patch" diff --git a/main/procmail/procmail-3.23pre.patch b/main/procmail/procmail-3.23pre.patch new file mode 100644 index 0000000000..4250a5bf54 --- /dev/null +++ b/main/procmail/procmail-3.23pre.patch @@ -0,0 +1,257 @@ +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++) |