diff --git a/0001-Fix-SIGSEGV-in-reformime-1613761.patch b/0001-Fix-SIGSEGV-in-reformime-1613761.patch new file mode 100644 index 0000000..a9d7696 --- /dev/null +++ b/0001-Fix-SIGSEGV-in-reformime-1613761.patch @@ -0,0 +1,47 @@ +From 1186c36c44ca581fd4819f59d1823d3f2ec17164 Mon Sep 17 00:00:00 2001 +From: "Brian C. Lane" +Date: Wed, 8 Aug 2018 13:06:58 -0700 +Subject: [PATCH] Fix SIGSEGV in reformime (#1613761) + +Check for NULL section when running strtok on it for decode and +do_extract handling. +--- + libs/rfc2045/reformime.c | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/libs/rfc2045/reformime.c b/libs/rfc2045/reformime.c +index 9851c65..49a0ebd 100644 +--- a/libs/rfc2045/reformime.c ++++ b/libs/rfc2045/reformime.c +@@ -1164,10 +1164,11 @@ int rc=0; + } + else if (dodecode) + { +- mimesection = strtok(section,","); ++ mimesection = section ? strtok(section, ","):NULL; + do { + print_decode(p, mimesection); +- mimesection = strtok(NULL,","); ++ if (mimesection) ++ mimesection = strtok(NULL,","); + } while (mimesection != NULL); + } + else if (dorewrite) +@@ -1176,11 +1177,12 @@ int rc=0; + dsn(p, dodsn == 2); + else if (do_extract) + { +- mimesection = strtok(section,","); ++ mimesection = section ? strtok(section, ","):NULL; + do { + extract_section(p, mimesection, extract_filename, + argc-argn, argv+argn, do_extract); +- mimesection = strtok(NULL,","); ++ if (mimesection) ++ mimesection = strtok(NULL,","); + } while (mimesection != NULL); + } + else if (dovalidate) +-- +2.17.1 + diff --git a/maildrop-2.9.3.tar.bz2 b/maildrop-2.9.3.tar.bz2 new file mode 100644 index 0000000..36cbb09 Binary files /dev/null and b/maildrop-2.9.3.tar.bz2 differ diff --git a/maildrop-2.9.3.tar.bz2.sig b/maildrop-2.9.3.tar.bz2.sig new file mode 100644 index 0000000..60d3132 Binary files /dev/null and b/maildrop-2.9.3.tar.bz2.sig differ diff --git a/maildrop.spec b/maildrop.spec new file mode 100644 index 0000000..719026c --- /dev/null +++ b/maildrop.spec @@ -0,0 +1,77 @@ +%global _hardened_build 1 +Summary: Mail delivery agent with filtering abilities +Name: maildrop +Version: 2.9.3 +Release: 1 +License: GPLv2 with exceptions +URL: https://sourceforge.net/projects/courier +Source0: https://downloads.sourceforge.net/project/courier/%{name}/%{version}/%{name}-%{version}.tar.bz2 +Source1: https://downloads.sourceforge.net/project/courier/%{name}/%{version}/%{name}-%{version}.tar.bz2.sig +Source2: pubkey.maildrop +Patch0001: 0001-Fix-SIGSEGV-in-reformime-1613761.patch +Requires: courier-unicode >= 1.4 +BuildRequires: automake, libtool, autoconf gcc-c++, gdbm-devel, libdb-devel, pcre-devel gawk +BuildRequires: gnupg courier-unicode-devel >= 1.4 gamin-devel +%description +maildrop is the mail filter/mail delivery agent that's used by the +Courier Mail Server. This is a standalone build of the maildrop mail +filter that can be used with other mail servers. +maildrop is a replacement for your local mail delivery agent. maildrop +reads a mail message from standard input, then delivers the message to +your mailbox. maildrop knows how to deliver mail to mbox-style +mailboxes, and maildirs. +maildrop optionally reads instructions from a file, which describe how +to filter incoming mail. These instructions can direct maildrop to +deliver the message to an alternate mailbox, or forward it somewhere +else. Unlike procmail, maildrop uses a structured filtering language. +maildrop is written in C++, and is significantly larger than +procmail. However, it uses resources much more efficiently. Unlike +procmail, maildrop will not read a 10 megabyte mail message into +memory. Large messages are saved in a temporary file, and are filtered +from the temporary file. If the standard input to maildrop is a file, +and not a pipe, a temporary file will not be necessary. +maildrop checks the mail delivery instruction syntax from the filter +file, before attempting to deliver a message. Unlike procmail, if the +filter file contains syntax errors, maildrop terminates without +delivering the message. The user can fix the typo without causing any +mail to be lost. + +%prep +%autosetup -p1 +gpg --import %{SOURCE2} +gpg --verify %{SOURCE1} %{SOURCE0} + +%build +%configure --disable-shared \ + --enable-use-flock=1 --with-locking-method=fcntl \ + --enable-use-dotlock=1 \ + --enable-syslog=1 \ + --enable-sendmail=%{_sbindir}/sendmail +make + +%install +rm -rf %{buildroot} +make install DESTDIR=%{buildroot} htmldir=%{_defaultdocdir}/%{name} +cp -pr COPYING COPYING.GPL AUTHORS %{buildroot}%{_defaultdocdir}/%{name} +cp -pr README README.postfix ChangeLog UPGRADE %{buildroot}%{_defaultdocdir}/%{name} + +%files +%doc %{_defaultdocdir}/%{name} +%attr(6755,root,mail) %{_bindir}/maildrop +%attr(6755,root,mail) %{_bindir}/lockmail +%{_bindir}/deliverquota +%{_bindir}/mailbot +%{_bindir}/maildirmake +%{_bindir}/makemime +%{_bindir}/reformail +%{_bindir}/reformime +%{_bindir}/makedat +%{_bindir}/makedatprog +%{_mandir}/man1/*.1* +%{_mandir}/man5/*.5* +%{_mandir}/man7/*.7* +%{_mandir}/man8/*.8* + +%changelog +* Wed Oct 14 2020 chengzihan - 2.9.3-1 +- Package init diff --git a/maildrop.yaml b/maildrop.yaml new file mode 100644 index 0000000..a89449b --- /dev/null +++ b/maildrop.yaml @@ -0,0 +1,4 @@ +version_control: git +src_repo: https://git.code.sf.net/p/courier/courier-libs.git +tag_prefix: "^" +separator: "." diff --git a/pubkey.maildrop b/pubkey.maildrop new file mode 100644 index 0000000..0a4ae2b --- /dev/null +++ b/pubkey.maildrop @@ -0,0 +1,53 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1 + +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 +=85Hx +-----END PGP PUBLIC KEY BLOCK-----