[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#606758: future unblock: dma/0.0.2010.06.17-7



On Sat, Dec 11, 2010 at 04:11:47PM +0200, Peter Pentchev wrote:
> Package: release.debian.org
> Severity: normal
> User: release.debian.org@packages.debian.org
> Usertags: unblock
> 
> Hi,
> 
> Thanks for your efforts on cutting great Debian releases!
> 
> I've made some changes (debdiff attached) to the dma package which
> I haven't uploaded to unstable yet; do you think they are suitable
> for a unstable -> testing migration during the freeze, or should I
> upload to experimental instead, or just wait?
> 
> The first change is a fix for #606398 - now dma provides the
> /usr/lib/sendmail symlink so some MUA's can actually, well, send
> mail.  IMHO this is a usability improvement, although only for a
> small portion of the MUA's.
> 
> The second change is a fix for a segfault if dma cannot resolve any
> of the MX's it tries to deliver to.  This does not have any really
> bad consequences - the message is still in the queue and dma will
> retry the delivery in a while - but it is kind of annoying to have
> segfaults show up in your syslog just because a VPN is down :)

Actually, after a bit of communication with the upstream developer,
I decided that it would be better to use his version of the fix for
the DNS MX trouble.  Attached is a debdiff that replaces my patch
with his change, committed to his Gitorious repo.

> So - what's your call?  Should I upload to unstable with a freeze
> exception in mind, or should these fixes wait for the Squeeze
> release?

G'luck,
Peter

-- 
Peter Pentchev	roam@space.bg    roam@ringlet.net    roam@FreeBSD.org
PGP key:	http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint	FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
This sentence was in the past tense.
diffstat for dma-0.0.2010.06.17 dma-0.0.2010.06.17

 changelog                        |    9 ++++
 dma.links                        |    1 
 patches/38-unresolvable-mx.patch |   87 +++++++++++++++++++++++++++++++++++++++
 patches/series                   |    1 
 4 files changed, 98 insertions(+)

diff -Nru dma-0.0.2010.06.17/debian/changelog dma-0.0.2010.06.17/debian/changelog
--- dma-0.0.2010.06.17/debian/changelog	2010-10-17 00:08:38.000000000 +0300
+++ dma-0.0.2010.06.17/debian/changelog	2010-12-13 12:58:57.000000000 +0200
@@ -1,3 +1,12 @@
+dma (0.0.2010.06.17-7) unstable; urgency=low
+
+  * Provide the /usr/lib/sendmail symlink.  Closes: #606398
+  * Add the 38-unresolvable-mx patch to fix a segfault when
+    dma is unable to, well, resolve either the provided smarthost or
+    any of the mail exchangers for the recipient domain.
+
+ -- Peter Pentchev <roam@ringlet.net>  Mon, 13 Dec 2010 12:58:54 +0200
+
 dma (0.0.2010.06.17-6) unstable; urgency=low
 
   * Add the 37-gnu-hurd patch to really fix the FTBFS on GNU/Hurd.
diff -Nru dma-0.0.2010.06.17/debian/dma.links dma-0.0.2010.06.17/debian/dma.links
--- dma-0.0.2010.06.17/debian/dma.links	2009-12-09 20:27:05.000000000 +0200
+++ dma-0.0.2010.06.17/debian/dma.links	2010-12-11 15:19:23.000000000 +0200
@@ -1,5 +1,6 @@
 usr/sbin/dma usr/bin/mailq
 usr/sbin/dma usr/bin/newaliases
+usr/sbin/dma usr/lib/sendmail
 usr/sbin/dma usr/sbin/sendmail
 usr/share/man/man8/dma.8 usr/share/man/man8/mailq.8
 usr/share/man/man8/dma.8 usr/share/man/man8/newaliases.8
diff -Nru dma-0.0.2010.06.17/debian/patches/38-unresolvable-mx.patch dma-0.0.2010.06.17/debian/patches/38-unresolvable-mx.patch
--- dma-0.0.2010.06.17/debian/patches/38-unresolvable-mx.patch	1970-01-01 02:00:00.000000000 +0200
+++ dma-0.0.2010.06.17/debian/patches/38-unresolvable-mx.patch	2010-12-13 12:42:42.000000000 +0200
@@ -0,0 +1,87 @@
+Description: Fix a segfault upon unresolvable MX's.
+ This fixes both the case when the configured smarthost is unresolvable
+ and the case when a smarthost is not used but *all* of the MX's for
+ the recipient domain are unresolvable.
+Origin: upstream; http://gitorious.org/~corecode/dma/corecodes-dma/commit/4b26e6a7
+Author: Simon 'corecode' Schubert <2@0x2c.org>
+Last-Update: 2010-12-13
+
+--- a/dns.c
++++ b/dns.c
+@@ -80,7 +80,7 @@
+ 	snprintf(servname, sizeof(servname), "%d", port);
+ 	err = getaddrinfo(host, servname, &hints, &res0);
+ 	if (err)
+-		return (-1);
++		return (err == EAI_AGAIN ? 1 : -1);
+ 
+ 	for (res = res0; res != NULL; res = res->ai_next) {
+ 		if (*ps + 1 >= roundup(*ps, count_inc)) {
+@@ -110,7 +110,7 @@
+ out:
+ 	if (res0 != NULL)
+ 		freeaddrinfo(res0);
+-	return (-1);
++	return (1);
+ }
+ 
+ int
+@@ -127,6 +127,7 @@
+ 	size_t anssz;
+ 	int pref;
+ 	int cname_recurse;
++	int have_mx = 0;
+ 	int err;
+ 	int i;
+ 
+@@ -183,6 +184,7 @@
+ 
+ 		switch (ns_rr_type(rr)) {
+ 		case ns_t_mx:
++			have_mx = 1;
+ 			pref = ns_get16(cp);
+ 			cp += 2;
+ 			err = ns_name_uncompress(ns_msg_base(msg), ns_msg_end(msg),
+@@ -190,7 +192,9 @@
+ 			if (err < 0)
+ 				goto transerr;
+ 
+-			add_host(pref, outname, port, &hosts, &nhosts);
++			err = add_host(pref, outname, port, &hosts, &nhosts);
++			if (err == -1)
++				goto err;
+ 			break;
+ 
+ 		case ns_t_cname:
+@@ -225,17 +229,23 @@
+ 
+ 	free(ans);
+ 
+-	if (!err) {
+-		/*
+-		 * If we didn't find any MX, use the hostname instead.
+-		 */
+-		if (nhosts == 0)
+-			add_host(0, searchhost, port, &hosts, &nhosts);
+-
+-		qsort(hosts, nhosts, sizeof(*hosts), sort_pref);
++	if (err == 0) {
++		if (!have_mx) {
++			/*
++			 * If we didn't find any MX, use the hostname instead.
++			 */
++			err = add_host(0, host, port, &hosts, &nhosts);
++		} else if (nhosts == 0) {
++			/*
++			 * We did get MX, but couldn't resolve any of them
++			 * due to transient errors.
++			 */
++			err = 1;
++		}
+ 	}
+ 
+ 	if (nhosts > 0) {
++		qsort(hosts, nhosts, sizeof(*hosts), sort_pref);
+ 		/* terminate list */
+ 		*hosts[nhosts].host = 0;
+ 	} else {
diff -Nru dma-0.0.2010.06.17/debian/patches/series dma-0.0.2010.06.17/debian/patches/series
--- dma-0.0.2010.06.17/debian/patches/series	2010-10-16 18:54:13.000000000 +0300
+++ dma-0.0.2010.06.17/debian/patches/series	2010-12-11 15:19:23.000000000 +0200
@@ -20,3 +20,4 @@
 35-delivery-retry.patch
 36-sa_nocldwait.patch
 37-gnu-hurd.patch
+38-unresolvable-mx.patch

Attachment: signature.asc
Description: Digital signature


Reply to: