Fri Apr 24 14:33:08 2020 UTC ()
Bug fix, submitted upstream

Add missing curly brackets that caused res_ninit() to be called
with non-zeroed state structure. In NetBSD, res_ninit() detects
the mistake and quickly calls res_ndestroy(), which will close file
descriptors based on the random data provided in the state structure.
The result at mine is sendmail going mute after the MAIL FROM
command.


(manu)
diff -r1.136 -r1.137 pkgsrc/mail/sendmail/Makefile
diff -r1.62 -r1.63 pkgsrc/mail/sendmail/distinfo
diff -r0 -r1.1 pkgsrc/mail/sendmail/patches/patch-sendmail_domain.c

cvs diff -r1.136 -r1.137 pkgsrc/mail/sendmail/Makefile (expand / switch to unified diff)

--- pkgsrc/mail/sendmail/Makefile 2020/04/12 09:11:41 1.136
+++ pkgsrc/mail/sendmail/Makefile 2020/04/24 14:33:08 1.137
@@ -1,17 +1,17 @@ @@ -1,17 +1,17 @@
1# $NetBSD: Makefile,v 1.136 2020/04/12 09:11:41 jnemeth Exp $ 1# $NetBSD: Makefile,v 1.137 2020/04/24 14:33:08 manu Exp $
2 2
3PKGNAME= sendmail-${DIST_VERS} 3PKGNAME= sendmail-${DIST_VERS}
4PKGREVISION= 8 4PKGREVISION= 9
5COMMENT= The well known Mail Transport Agent 5COMMENT= The well known Mail Transport Agent
6 6
7CONFLICTS+= courier-mta-[0-9]* fastforward>=0.51nb2 postfix-[0-9]* 7CONFLICTS+= courier-mta-[0-9]* fastforward>=0.51nb2 postfix-[0-9]*
8CONFLICTS+= esmtp>=1.2 8CONFLICTS+= esmtp>=1.2
9 9
10.include "options.mk" 10.include "options.mk"
11.include "../../mail/sendmail/Makefile.common" 11.include "../../mail/sendmail/Makefile.common"
12 12
13USE_TOOLS+= pax 13USE_TOOLS+= pax
14 14
15MESSAGE_SRC= ${WRKDIR}/.MESSAGE_SRC 15MESSAGE_SRC= ${WRKDIR}/.MESSAGE_SRC
16PLIST_SRC= ${WRKDIR}/.PLIST_SRC 16PLIST_SRC= ${WRKDIR}/.PLIST_SRC
17 17

cvs diff -r1.62 -r1.63 pkgsrc/mail/sendmail/distinfo (expand / switch to unified diff)

--- pkgsrc/mail/sendmail/distinfo 2020/04/12 09:11:41 1.62
+++ pkgsrc/mail/sendmail/distinfo 2020/04/24 14:33:08 1.63
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1$NetBSD: distinfo,v 1.62 2020/04/12 09:11:41 jnemeth Exp $ 1$NetBSD: distinfo,v 1.63 2020/04/24 14:33:08 manu Exp $
2 2
3SHA1 (sendmail.8.15.2.tar.gz) = 5801d4b06f4e38ef228a5954a44d17636eaa5a16 3SHA1 (sendmail.8.15.2.tar.gz) = 5801d4b06f4e38ef228a5954a44d17636eaa5a16
4RMD160 (sendmail.8.15.2.tar.gz) = 1fe2210e1ded1fe2ee640fceb1de29f19ceaa8e4 4RMD160 (sendmail.8.15.2.tar.gz) = 1fe2210e1ded1fe2ee640fceb1de29f19ceaa8e4
5SHA512 (sendmail.8.15.2.tar.gz) = 04feb37316c13b66b1518596507a7da7c16cb0bf1abf10367f7fd888a428fadb093a9efa55342fa55b936c3f0cbdc63b9e2505cd99201a69a0c05b8ad65f49f9 5SHA512 (sendmail.8.15.2.tar.gz) = 04feb37316c13b66b1518596507a7da7c16cb0bf1abf10367f7fd888a428fadb093a9efa55342fa55b936c3f0cbdc63b9e2505cd99201a69a0c05b8ad65f49f9
6Size (sendmail.8.15.2.tar.gz) = 2207417 bytes 6Size (sendmail.8.15.2.tar.gz) = 2207417 bytes
7SHA1 (patch-aa) = bd1ab754f7146d002eaf8c0347e114b4049a7776 7SHA1 (patch-aa) = bd1ab754f7146d002eaf8c0347e114b4049a7776
8SHA1 (patch-af) = bd3e26b0e78eadd610713430ae6deac888176442 8SHA1 (patch-af) = bd3e26b0e78eadd610713430ae6deac888176442
9SHA1 (patch-ag) = f76de45c7e8d16207670e151265b7edbca4c045c 9SHA1 (patch-ag) = f76de45c7e8d16207670e151265b7edbca4c045c
10SHA1 (patch-ah) = e6be09008b9230ffdd1560aaacbdbb2ee4fb8028 10SHA1 (patch-ah) = e6be09008b9230ffdd1560aaacbdbb2ee4fb8028
11SHA1 (patch-ai) = 0bd3676dce988cf1167fae09443da0d1a1363abb 11SHA1 (patch-ai) = 0bd3676dce988cf1167fae09443da0d1a1363abb
12SHA1 (patch-aj) = e65e6fe44380de2f9c397c1a97677eb4ad285433 12SHA1 (patch-aj) = e65e6fe44380de2f9c397c1a97677eb4ad285433
13SHA1 (patch-an) = 56b8b82880b9ef8fefd7cbbe98dad30b8db753f1 13SHA1 (patch-an) = 56b8b82880b9ef8fefd7cbbe98dad30b8db753f1
14SHA1 (patch-ao) = 88dd76b71ad57a8d0efdb6e8518ff01689ecf634 14SHA1 (patch-ao) = 88dd76b71ad57a8d0efdb6e8518ff01689ecf634
@@ -28,13 +28,14 @@ SHA1 (patch-bb) = 6c86a60af25b02fc0389f1 @@ -28,13 +28,14 @@ SHA1 (patch-bb) = 6c86a60af25b02fc0389f1
28SHA1 (patch-bc) = 9e7346342dfe1ca5d84053b913df4be41a979683 28SHA1 (patch-bc) = 9e7346342dfe1ca5d84053b913df4be41a979683
29SHA1 (patch-bd) = 1a6d035c585838e771a1a677892b95bb82000a7b 29SHA1 (patch-bd) = 1a6d035c585838e771a1a677892b95bb82000a7b
30SHA1 (patch-be) = d2f3397b7880f23f8cbd5d3c4eb5ccfe6a6ca75b 30SHA1 (patch-be) = d2f3397b7880f23f8cbd5d3c4eb5ccfe6a6ca75b
31SHA1 (patch-bf) = 9c5faf5b38c18623e5ce4ffafc00a4430965e41a 31SHA1 (patch-bf) = 9c5faf5b38c18623e5ce4ffafc00a4430965e41a
32SHA1 (patch-bg) = 17b750d84333eacd39a23aa313d5ba24dc7d2156 32SHA1 (patch-bg) = 17b750d84333eacd39a23aa313d5ba24dc7d2156
33SHA1 (patch-bk) = 0b0b85fb6c5c80c8419c783dc3e35d28edbdb70b 33SHA1 (patch-bk) = 0b0b85fb6c5c80c8419c783dc3e35d28edbdb70b
34SHA1 (patch-bl) = 4fff262691deb2fcacf5013bfeb5aede45783dcd 34SHA1 (patch-bl) = 4fff262691deb2fcacf5013bfeb5aede45783dcd
35SHA1 (patch-bm) = b1ec82ab5a97c2dc7f7230d31e47c89b7b5ac1d9 35SHA1 (patch-bm) = b1ec82ab5a97c2dc7f7230d31e47c89b7b5ac1d9
36SHA1 (patch-bn) = 3af37c9d3523d6093181ae3b7d4c25bc8173b7f9 36SHA1 (patch-bn) = 3af37c9d3523d6093181ae3b7d4c25bc8173b7f9
37SHA1 (patch-bo) = d338b035b54f87fc2e786ed85204c565fcc2c140 37SHA1 (patch-bo) = d338b035b54f87fc2e786ed85204c565fcc2c140
38SHA1 (patch-bp) = 9a1daac264aba6c4fc39a63a464b942dd25b06eb 38SHA1 (patch-bp) = 9a1daac264aba6c4fc39a63a464b942dd25b06eb
39SHA1 (patch-bq) = 548bf6d373cb49958437548a65803b6f3c6b35d2 39SHA1 (patch-bq) = 548bf6d373cb49958437548a65803b6f3c6b35d2
40SHA1 (patch-br) = 1f0b9716906b91ce2b867bf65e5c06ad16749e36 40SHA1 (patch-br) = 1f0b9716906b91ce2b867bf65e5c06ad16749e36
 41SHA1 (patch-sendmail_domain.c) = fafb14fb647d2f1600895aa8dc9464106906b447

File Added: pkgsrc/mail/sendmail/patches/Attic/patch-sendmail_domain.c
$NetBSD: patch-sendmail_domain.c,v 1.1 2020/04/24 14:33:08 manu Exp $

Add missing curly brackets that caused res_ninit() to be called
with non-zeroed state structure. In NetBSD, res_ninit() detects
the mistake and quickly calls res_ndestroy(), which will close file
descriptors based on the random data provided in the state structure.
The result at mine is sendmail going mute after the MAIL FROM
command.

--- sendmail/domain.c.orig
+++ sendmail/domain.c
@@ -802,17 +802,18 @@
 
 	if (tTd(8, 2))
 		sm_dprintf("dns_getcanonname(%s, trymx=%d)\n", host, trymx);
 
-	if ((sm_res.options & RES_INIT) == 0)
+	if ((sm_res.options & RES_INIT) == 0) {
 # if NAMED_RESN
 		memset(&sm_res, 0, sizeof(sm_res));
 		if (res_ninit(&sm_res) == -1) {
 # else
 		if (res_init() == -1) {
 # endif
 			*statp = EX_UNAVAILABLE;
 			return false;
+		}
 	}
 
 	*statp = EX_OK;