Update to sendmail 8.14.9nb1: this is a pkgsrc bugfix update

- remove some HTML cruft from netbsd-proto.mc
- stop trying to set file ownership and group during stage-install
- initialize sm_res earlier and test before calling res_ninit()
- clear SSL_OP_TLSEXT_PADDING by defualt to fix interoperability issues
- eliminate stray call to res_search()
  - verified with nm that all deprecated resolver functions have been eradicated

The above should address the folling PRs:

- PR/47207 - Richard Palo -- attempt to set ownership when unprivileged
- PR/48566 - Emmanuel Dreyfus -- problem with TLS timeouts
- PR/48913 - Matthias Scheler -- attempt to set ownership when unprivileged
This commit is contained in:
jnemeth 2014-06-20 05:24:32 +00:00
parent 53b469389b
commit 282034c653
12 changed files with 185 additions and 26 deletions

View file

@ -1,6 +1,7 @@
# $NetBSD: Makefile,v 1.122 2014/06/15 21:04:30 jnemeth Exp $
# $NetBSD: Makefile,v 1.123 2014/06/20 05:24:32 jnemeth Exp $
PKGNAME= sendmail-${DIST_VERS}
PKGREVISION= 1
COMMENT= The well known Mail Transport Agent
CONFLICTS+= courier-mta-[0-9]* fastforward>=0.51nb2 postfix-[0-9]*

View file

@ -1,4 +1,4 @@
$NetBSD: distinfo,v 1.51 2014/06/15 20:48:49 jnemeth Exp $
$NetBSD: distinfo,v 1.52 2014/06/20 05:24:32 jnemeth Exp $
SHA1 (sendmail.8.14.9.tar.gz) = fcf92eb0c119da1593ccda96ee24b4d0b0b21fd7
RMD160 (sendmail.8.14.9.tar.gz) = da36f900a94c9300521a60bf917ed3e5d6c88d1e
@ -9,16 +9,21 @@ SHA1 (patch-ag) = f76de45c7e8d16207670e151265b7edbca4c045c
SHA1 (patch-ah) = e6be09008b9230ffdd1560aaacbdbb2ee4fb8028
SHA1 (patch-ai) = 0bd3676dce988cf1167fae09443da0d1a1363abb
SHA1 (patch-aj) = e65e6fe44380de2f9c397c1a97677eb4ad285433
SHA1 (patch-an) = 82d2df0c609099f295eb00f1f5e19391ae97833c
SHA1 (patch-an) = 739c9081979bdb3eb77b117fd905c2875a1fc064
SHA1 (patch-ao) = 88dd76b71ad57a8d0efdb6e8518ff01689ecf634
SHA1 (patch-ap) = 9c83d9ed1b4d8c851c106597638763515923a4ab
SHA1 (patch-aq) = 722382daf085ac2f4a06d0c812bb00f49bcdfd2c
SHA1 (patch-ar) = d68984a057d7a0a674a8d46cf903585c8279f7a8
SHA1 (patch-as) = 652b107d5f68507a0b2fb7c5402186eff96c6bc0
SHA1 (patch-at) = 7c206df88d29671faef950276a5119ef2f525f4b
SHA1 (patch-au) = 08449c9c00cc0161af94a4994abf1d12b5785dcb
SHA1 (patch-au) = 87e907f36482f3ca03754160bc1ee106e17e3aaa
SHA1 (patch-av) = 1b6bd4547930507ab67427bcf8a390c0afce0fb0
SHA1 (patch-aw) = f1089cb4d97580097ed0449a448f1cbd874aedd9
SHA1 (patch-aw) = 898fc58af028f9887fceddc7bbb50d5fc88d5189
SHA1 (patch-ax) = adba9177404e10d5f461e1e8f0c4dd5840d78dd1
SHA1 (patch-ay) = 5e003a2c5ec9c42556b7c2fe141ff65c86345029
SHA1 (patch-ay) = 94f9c633c1d15037ddd0a6ed46a4f3aaec236fc2
SHA1 (patch-az) = e067d46657593348e7df912d1d54c02c0dfd54ed
SHA1 (patch-ba) = c190b11b9874f00a18b9c75b6e734f4a9dd3f68f
SHA1 (patch-bb) = 6c86a60af25b02fc0389f1d40f59c5031d9679f1
SHA1 (patch-bc) = 9e7346342dfe1ca5d84053b913df4be41a979683
SHA1 (patch-bd) = 1a6d035c585838e771a1a677892b95bb82000a7b
SHA1 (patch-be) = d2f3397b7880f23f8cbd5d3c4eb5ccfe6a6ca75b

View file

@ -1,4 +1,4 @@
# $NetBSD: netbsd-proto.mc,v 1.1 2014/06/15 20:48:49 jnemeth Exp $
# $NetBSD: netbsd-proto.mc,v 1.2 2014/06/20 05:24:32 jnemeth Exp $
divert(-1)
#
@ -42,14 +42,14 @@ divert(-1)
#
include(`../m4/cf.m4')
VERSIONID(`@(#)netbsd-proto.mc $Revision: 1.1 $')
VERSIONID(`@(#)netbsd-proto.mc $Revision: 1.2 $')
OSTYPE(bsd4.4)dnl
DOMAIN(generic)dnl
FEATURE(genericstable,DATABASE_MAP_TYPE` -o 'MAIL_SETTINGS_DIR`genericstable')
FEATURE(mailertable, DATABASE_MAP_TYPE` -o 'MAIL_SETTINGS_DIR`mailertable')
FEATURE(virtusertable,DATABASE_MAP_TYPE` -o 'MAIL_SETTINGS_DIR`virtusertable')
FEATURE(domaintable, DATABASE_MAP_TYPE` -o 'MAIL_SETTINGS_DIR`domaintable')
FEATURE(access_db, DATABASE_MAP_TYPE` -T<TMPF> -o 'MAIL_SETTINGS_DIR`access')
FEATURE(access_db, DATABASE_MAP_TYPE` -T<TMPF>; -o 'MAIL_SETTINGS_DIR`access')
FEATURE(`redirect')
FEATURE(`no_default_msa')
MAILER(local)dnl

View file

@ -1,6 +1,6 @@
$NetBSD: patch-an,v 1.1 2009/03/24 21:05:42 jnemeth Exp $
$NetBSD: patch-an,v 1.2 2014/06/20 05:24:32 jnemeth Exp $
--- sendmail/Makefile.m4.orig 2008-03-27 09:13:33.000000000 -0700
--- sendmail/Makefile.m4.orig 2014-05-16 20:40:15.000000000 +0000
+++ sendmail/Makefile.m4
@@ -4,7 +4,7 @@ include(confBUILDTOOLSDIR`/M4/switch.m4'
define(`confREQUIRE_LIBSM', `true')
@ -11,3 +11,39 @@ $NetBSD: patch-an,v 1.1 2009/03/24 21:05:42 jnemeth Exp $
define(`bldINSTALL_DIR', `')
define(`bldSOURCES', `main.c alias.c arpadate.c bf.c collect.c conf.c control.c convtime.c daemon.c deliver.c domain.c envelope.c err.c headers.c macro.c map.c mci.c milter.c mime.c parseaddr.c queue.c ratectrl.c readcf.c recipient.c sasl.c savemail.c sfsasl.c shmticklib.c sm_resolve.c srvrsmtp.c stab.c stats.c sysexits.c timers.c tls.c trace.c udb.c usersmtp.c util.c version.c ')
PREPENDDEF(`confENVDEF', `confMAPDEF')
@@ -68,7 +68,7 @@ ifdef(`confNO_STATISTICS_INSTALL',, `bld
divert(bldTARGETS_SECTION)
install-set-user-id: bldCURRENT_PRODUCT ifdef(`confNO_HELPFILE_INSTALL',, `install-hf') ifdef(`confNO_STATISTICS_INSTALL',, `install-st') ifdef(`confNO_MAN_BUILD',, `install-docs')
- ${INSTALL} -c -o ${S`'BINOWN} -g ${S`'BINGRP} -m ${S`'BINMODE} bldCURRENT_PRODUCT ${DESTDIR}${M`'BINDIR}
+ ${INSTALL} -c -m ${S`'BINMODE} bldCURRENT_PRODUCT ${DESTDIR}${M`'BINDIR}
for i in ${sendmailTARGET_LINKS}; do \
rm -f $$i; \
${LN} ${LNOPTS} ${M`'BINDIR}/sendmail $$i; \
@@ -76,7 +76,7 @@ install-set-user-id: bldCURRENT_PRODUCT
define(`confMTA_LINKS', `${DESTDIR}${UBINDIR}/newaliases ${DESTDIR}${UBINDIR}/mailq ${DESTDIR}${UBINDIR}/hoststat ${DESTDIR}${UBINDIR}/purgestat')
install-sm-mta: bldCURRENT_PRODUCT
- ${INSTALL} -c -o ${M`'BINOWN} -g ${M`'BINGRP} -m ${M`'BINMODE} bldCURRENT_PRODUCT ${DESTDIR}${M`'BINDIR}/sm-mta
+ ${INSTALL} -c -m ${M`'BINMODE} bldCURRENT_PRODUCT ${DESTDIR}${M`'BINDIR}/sm-mta
for i in confMTA_LINKS; do \
rm -f $$i; \
${LN} ${LNOPTS} ${M`'BINDIR}/sm-mta $$i; \
@@ -84,14 +84,14 @@ install-sm-mta: bldCURRENT_PRODUCT
install-hf:
if [ ! -d ${DESTDIR}${HFDIR} ]; then mkdir -p ${DESTDIR}${HFDIR}; else :; fi
- ${INSTALL} -c -o ${UBINOWN} -g ${UBINGRP} -m 444 helpfile ${DESTDIR}${HFFILE}
+ ${INSTALL} -c -m 444 helpfile ${DESTDIR}${HFFILE}
install-st: statistics
if [ ! -d ${DESTDIR}${STDIR} ]; then mkdir -p ${DESTDIR}${STDIR}; else :; fi
- ${INSTALL} -c -o ${SBINOWN} -g ${UBINGRP} -m ifdef(`confSTMODE', `confSTMODE', `0600') statistics ${DESTDIR}${STPATH}
+ ${INSTALL} -c -m ifdef(`confSTMODE', `confSTMODE', `0600') statistics ${DESTDIR}${STPATH}
install-submit-st: statistics ${DESTDIR}${MSPQ}
- ${INSTALL} -c -o ${MSPQOWN} -g ${GBINGRP} -m ifdef(`confSTMODE', `confSTMODE', `0600') statistics ${DESTDIR}${MSPQ}/${MSPSTFILE}
+ ${INSTALL} -c -m ifdef(`confSTMODE', `confSTMODE', `0600') statistics ${DESTDIR}${MSPQ}/${MSPSTFILE}
divert(0)
bldPRODUCT_END

View file

@ -1,4 +1,4 @@
$NetBSD: patch-au,v 1.1 2014/06/15 20:48:50 jnemeth Exp $
$NetBSD: patch-au,v 1.2 2014/06/20 05:24:32 jnemeth Exp $
--- sendmail/main.c.orig 2014-05-16 20:40:15.000000000 +0000
+++ sendmail/main.c
@ -13,19 +13,32 @@ $NetBSD: patch-au,v 1.1 2014/06/15 20:48:50 jnemeth Exp $
int
main(argc, argv, envp)
int argc;
@@ -683,21 +687,27 @@ main(argc, argv, envp)
@@ -210,6 +214,15 @@ main(argc, argv, envp)
envp = environ;
#endif /* USE_ENVIRON */
+#if NAMED_BIND
+# if NAMED_RESN
+ sm_res = *(struct __res_state *)sm_malloc(sizeof(struct __res_state));
+ memset(&sm_res, 0, sizeof(struct __res_state));
+# else
+ sm_res = _res;
+# endif
+#endif
+
/* turn off profiling */
SM_PROF(0);
@@ -683,21 +696,25 @@ main(argc, argv, envp)
*/
#if NAMED_BIND
- if (!bitset(RES_INIT, _res.options))
- (void) res_init();
+ if (!bitset(RES_INIT, sm_res.options))
+# if NAMED_RESN
+ sm_res = *(struct __res_state *)sm_malloc(sizeof(struct __res_state));
+ memset(&sm_res, 0, sizeof(struct __res_state));
+ (void) res_ninit(&sm_res);
+ (void) res_ninit(&sm_res);
+# else
+ sm_res = _res;
+ (void) res_init();
(void) res_init();
+# endif
if (tTd(8, 8))
- _res.options |= RES_DEBUG;
@ -52,7 +65,7 @@ $NetBSD: patch-au,v 1.1 2014/06/15 20:48:50 jnemeth Exp $
#endif /* NAMED_BIND */
errno = 0;
@@ -1380,8 +1390,8 @@ main(argc, argv, envp)
@@ -1380,8 +1397,8 @@ main(argc, argv, envp)
}
#if NAMED_BIND
@ -63,7 +76,7 @@ $NetBSD: patch-au,v 1.1 2014/06/15 20:48:50 jnemeth Exp $
#endif /* NAMED_BIND */
/*
@@ -2884,8 +2894,8 @@ main(argc, argv, envp)
@@ -2884,8 +2901,8 @@ main(argc, argv, envp)
sm_getla();
GrabTo = false;
#if NAMED_BIND

View file

@ -1,4 +1,4 @@
$NetBSD: patch-aw,v 1.1 2014/06/15 20:48:50 jnemeth Exp $
$NetBSD: patch-aw,v 1.2 2014/06/20 05:24:32 jnemeth Exp $
--- sendmail/readcf.c.orig 2014-05-16 20:40:15.000000000 +0000
+++ sendmail/readcf.c
@ -13,7 +13,32 @@ $NetBSD: patch-aw,v 1.1 2014/06/15 20:48:50 jnemeth Exp $
#define SECONDS
#define MINUTES * 60
@@ -2810,13 +2814,13 @@ setoption(opt, val, safe, sticky, e)
@@ -124,6 +128,14 @@ readcf(cfname, safe, e)
| SSL_OP_NO_TICKET
#endif
;
+#ifdef SSL_OP_TLSEXT_PADDING
+ /*
+ * For now disable SSL_OP_TLSEXT_PADDING: with OpenSSL 1.0.1g
+ * and 1.0.1h it breaks compatibility with some sites.
+ */
+ Srv_SSL_Options &= ~SSL_OP_TLSEXT_PADDING;
+ Clt_SSL_Options &= ~SSL_OP_TLSEXT_PADDING;
+#endif
#endif /* STARTTLS */
if (DontLockReadFiles)
sff |= SFF_NOLOCK;
@@ -2406,6 +2418,9 @@ static struct ssl_options
#ifdef SSL_OP_CRYPTOPRO_TLSEXT_BUG
{ "SSL_OP_CRYPTOPRO_TLSEXT_BUG", SSL_OP_CRYPTOPRO_TLSEXT_BUG },
#endif
+#ifdef SSL_OP_TLSEXT_PADDING
+ { "SSL_OP_TLSEXT_PADDING", SSL_OP_TLSEXT_PADDING
+#endif
{ NULL, 0 }
};
#endif /* STARTTLS && _FFR_TLS_1 */
@@ -2810,13 +2825,13 @@ setoption(opt, val, safe, sticky, e)
if (rfp->rf_name == NULL)
syserr("readcf: I option value %s unrecognized", q);
else if (clearmode)

View file

@ -1,4 +1,4 @@
$NetBSD: patch-ay,v 1.1 2014/06/15 20:48:50 jnemeth Exp $
$NetBSD: patch-ay,v 1.2 2014/06/20 05:24:32 jnemeth Exp $
--- sendmail/sm_resolve.c.orig 2014-05-16 20:40:15.000000000 +0000
+++ sendmail/sm_resolve.c
@ -38,12 +38,22 @@ $NetBSD: patch-ay,v 1.1 2014/06/15 20:48:50 jnemeth Exp $
len = res_search(domain, rr_class, rr_type, reply, SMRBSIZE);
+#endif
if (len >= SMRBSIZE)
@@ -454,3 +462,3 @@ dns_lookup_int(domain, rr_class, rr_type
@@ -448,4 +456,9 @@ dns_lookup_int(domain, rr_class, rr_type
else
+#if NAMED_RESN
+ len = res_nsearch(&sm_res, domain, rr_class,
+ rr_type, reply, IP_MAXPACKET);
+#else
len = res_search(domain, rr_class, rr_type,
reply, IP_MAXPACKET);
+#endif
}
@@ -454,3 +467,3 @@ dns_lookup_int(domain, rr_class, rr_type
{
- _res.options = old_options;
+ sm_res.options = old_options;
sm_dprintf("dns_lookup(%s, %d, %s) --> %d\n",
@@ -466,5 +474,5 @@ dns_lookup_int(domain, rr_class, rr_type
@@ -466,5 +479,5 @@ dns_lookup_int(domain, rr_class, rr_type
if (retrans > 0)
- _res.retrans = save_retrans;
+ sm_res.retrans = save_retrans;

View file

@ -0,0 +1,13 @@
$NetBSD: patch-ba,v 1.3 2014/06/20 05:24:32 jnemeth Exp $
--- devtools/M4/UNIX/executable.m4.orig 2014-03-06 17:31:29.000000000 +0000
+++ devtools/M4/UNIX/executable.m4
@@ -31,7 +31,7 @@ ifdef(`bldLINK_SOURCES', `bldMAKE_SOURCE
ifdef(`bldNO_INSTALL', ,
`install-`'bldCURRENT_PRODUCT: bldCURRENT_PRODUCT ifdef(`bldTARGET_INST_DEP', `bldTARGET_INST_DEP')
ifdef(`confMKDIR', `if [ ! -d ${DESTDIR}${bldINSTALL_DIR`'BINDIR} ]; then confMKDIR -p ${DESTDIR}${bldINSTALL_DIR`'BINDIR}; else :; fi ')
- ${INSTALL} -c -o ${bldBIN_TYPE`'BINOWN} -g ${bldBIN_TYPE`'BINGRP} -m ${bldBIN_TYPE`'BINMODE} bldCURRENT_PRODUCT ${DESTDIR}${bldINSTALL_DIR`'BINDIR}
+ ${INSTALL} -c -m ${bldBIN_TYPE`'BINMODE} bldCURRENT_PRODUCT ${DESTDIR}${bldINSTALL_DIR`'BINDIR}
ifdef(`bldTARGET_LINKS', `bldMAKE_TARGET_LINKS(${bldINSTALL_DIR`'BINDIR}/bldCURRENT_PRODUCT, ${bldCURRENT_PRODUCT`'TARGET_LINKS})')')
strip-`'bldCURRENT_PRODUCT: bldCURRENT_PRODUCT

View file

@ -0,0 +1,13 @@
$NetBSD: patch-bb,v 1.1 2014/06/20 05:24:32 jnemeth Exp $
--- devtools/M4/UNIX/library.m4.orig 2014-03-06 17:31:29.000000000 +0000
+++ devtools/M4/UNIX/library.m4
@@ -28,7 +28,7 @@ ifdef(`bldLINK_SOURCES', `bldMAKE_SOURCE
install-`'bldCURRENT_PRODUCT: bldCURRENT_PRODUCT.a
ifdef(`bldINSTALLABLE', ` ifdef(`confMKDIR', `if [ ! -d ${DESTDIR}${bldINSTALL_DIR`'LIBDIR} ]; then confMKDIR -p ${DESTDIR}${bldINSTALL_DIR`'LIBDIR}; else :; fi ')
- ${INSTALL} -c -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} bldCURRENT_PRODUCT.a ${DESTDIR}${LIBDIR}')
+ ${INSTALL} -c -m ${LIBMODE} bldCURRENT_PRODUCT.a ${DESTDIR}${LIBDIR}')
bldCURRENT_PRODUCT-clean:
rm -f ${OBJS} bldCURRENT_PRODUCT.a ${MANPAGES}

View file

@ -0,0 +1,17 @@
$NetBSD: patch-bc,v 1.1 2014/06/20 05:24:32 jnemeth Exp $
--- devtools/M4/UNIX/manpage.m4.orig 2014-03-06 17:31:29.000000000 +0000
+++ devtools/M4/UNIX/manpage.m4
@@ -69,10 +69,10 @@ ifdef(`confNO_MAN_INSTALL', `divert(-1)'
define(`bldMAN_INSTALL_CMD',
`ifdef(`confDONT_INSTALL_CATMAN', `dnl',
` ifdef(`confMKDIR', `if [ ! -d ${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)`SRC} ]; then confMKDIR -p ${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)`SRC}; else :; fi ')
- ${INSTALL} -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} bldGET_MAN_BASE_NAME($1).`${MAN'bldGET_MAN_SOURCE_NUM($1)`SRC}' `${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)}/bldGET_MAN_BASE_NAME($1)`.${MAN'bldGET_MAN_SOURCE_NUM($1)`EXT}'')
+ ${INSTALL} -c -m ${MANMODE} bldGET_MAN_BASE_NAME($1).`${MAN'bldGET_MAN_SOURCE_NUM($1)`SRC}' `${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)}/bldGET_MAN_BASE_NAME($1)`.${MAN'bldGET_MAN_SOURCE_NUM($1)`EXT}'')
ifdef(`confINSTALL_RAWMAN',
` ifdef(`confMKDIR', `if [ ! -d ${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)`MAN} ]; then confMKDIR -p ${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)`MAN}; else :; fi ')
- ${INSTALL} -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} bldGET_MAN_BASE_NAME($1).bldGET_MAN_SOURCE_NUM($1) `${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)`MAN}'/bldGET_MAN_BASE_NAME($1)`.${MAN'bldGET_MAN_SOURCE_NUM($1)`EXT}'', `dnl')'
+ ${INSTALL} -c -m ${MANMODE} bldGET_MAN_BASE_NAME($1).bldGET_MAN_SOURCE_NUM($1) `${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)`MAN}'/bldGET_MAN_BASE_NAME($1)`.${MAN'bldGET_MAN_SOURCE_NUM($1)`EXT}'', `dnl')'
)dnl
bldFOREACH(`bldMAN_INSTALL_CMD(', `bldMAN_PAGES')
ifdef(`confNO_MAN_INSTALL', `divert(0)', `dnl')

View file

@ -0,0 +1,13 @@
$NetBSD: patch-bd,v 1.1 2014/06/20 05:24:32 jnemeth Exp $
--- mail.local/Makefile.m4.orig 2014-03-06 17:31:30.000000000 +0000
+++ mail.local/Makefile.m4
@@ -30,7 +30,7 @@ install:
force-install: install-mail.local ifdef(`confNO_MAN_BUILD',, `install-docs')
install-mail.local: mail.local
- ${INSTALL} -c -o ${UBINOWN} -g ${UBINGRP} -m ${UBINMODE} mail.local ${DESTDIR}${EBINDIR}
+ ${INSTALL} -c -m ${UBINMODE} mail.local ${DESTDIR}${EBINDIR}
divert
bldFINISH

View file

@ -0,0 +1,13 @@
$NetBSD: patch-be,v 1.1 2014/06/20 05:24:32 jnemeth Exp $
--- rmail/Makefile.m4.orig 2014-03-06 17:31:31.000000000 +0000
+++ rmail/Makefile.m4
@@ -31,7 +31,7 @@ defeat-install:
force-install: install-rmail ifdef(`confNO_MAN_BUILD',, `install-docs')
install-rmail: rmail
- ${INSTALL} -c -o ${UBINOWN} -g ${UBINGRP} -m ${UBINMODE} rmail ${DESTDIR}${UBINDIR}
+ ${INSTALL} -c -m ${UBINMODE} rmail ${DESTDIR}${UBINDIR}
divert
bldFINISH