commit:     03c66ac305fd6e88a3c23bea9b7c1e678f13587c
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 12 00:08:59 2020 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Thu Mar 12 00:25:30 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=03c66ac3

mail-mta/sendmail: fix for glibc-2.30, bug #700108

Patch by John Covici.

Reported-by: Hanno Böck
Fixed-by: John Covici
Closes: https://bugs.gentoo.org/700108
Package-Manager: Portage-2.3.93, Repoman-2.3.20
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 .../files/sendmail-8.15.2-glibc-2.30.patch         | 52 ++++++++++++++++++++++
 mail-mta/sendmail/sendmail-8.15.2-r2.ebuild        |  1 +
 2 files changed, 53 insertions(+)

diff --git a/mail-mta/sendmail/files/sendmail-8.15.2-glibc-2.30.patch 
b/mail-mta/sendmail/files/sendmail-8.15.2-glibc-2.30.patch
new file mode 100644
index 00000000000..03281d1990f
--- /dev/null
+++ b/mail-mta/sendmail/files/sendmail-8.15.2-glibc-2.30.patch
@@ -0,0 +1,52 @@
+https://bugs.gentoo.org/700108
+
+--- sendmail-8.15.2-r1/libmilter/sm_gethost.c.orig     2014-03-04 
19:59:45.000000000 -0500
++++ sendmail-8.15.2-r1/libmilter/sm_gethost.c  2019-11-15 09:32:25.812406080 
-0500
+@@ -51,18 +51,21 @@
+ {
+       bool resv6 = true;
+       struct hostent *h;
+-
++#ifdef RES_USE_INET6
+       if (family == AF_INET6)
+       {
+               /* From RFC2133, section 6.1 */
+               resv6 = bitset(RES_USE_INET6, _res.options);
+               _res.options |= RES_USE_INET6;
+       }
++#endif
+       SM_SET_H_ERRNO(0);
+       h = gethostbyname(name);
++#ifdef RES_USE_INET6
+       if (family == AF_INET6 && !resv6)
+               _res.options &= ~RES_USE_INET6;
+ 
++#endif
+       /* the function is supposed to return only the requested family */
+       if (h != NULL && h->h_addrtype != family)
+       {
+--- sendmail-8.15.2-r2/sendmail/conf.c.orig    2019-11-14 17:36:41.262218822 
-0500
++++ sendmail-8.15.2-r2/sendmail/conf.c 2019-11-15 09:57:43.550284580 -0500
+@@ -4243,18 +4243,21 @@
+ 
+ # else /* HAS_GETHOSTBYNAME2 */
+       bool resv6 = true;
+-
++#ifdef RES_USE_INET6
+       if (family == AF_INET6)
+       {
+               /* From RFC2133, section 6.1 */
+               resv6 = bitset(RES_USE_INET6, _res.options);
+               _res.options |= RES_USE_INET6;
+       }
++#endif
+       SM_SET_H_ERRNO(0);
+       h = gethostbyname(name);
++#ifdef RES_USE_INET6
+       if (!resv6)
+               _res.options &= ~RES_USE_INET6;
+ 
++#endif
+       /* the function is supposed to return only the requested family */
+       if (h != NULL && h->h_addrtype != family)
+       {

diff --git a/mail-mta/sendmail/sendmail-8.15.2-r2.ebuild 
b/mail-mta/sendmail/sendmail-8.15.2-r2.ebuild
index d3fd92fa5bb..b8ea4032251 100644
--- a/mail-mta/sendmail/sendmail-8.15.2-r2.ebuild
+++ b/mail-mta/sendmail/sendmail-8.15.2-r2.ebuild
@@ -59,6 +59,7 @@ src_prepare() {
        eapply "${FILESDIR}"/libmilter-sharedlib.patch
        eapply -p0 "${FILESDIR}"/sendmail-starttls-multi-crl.patch
        eapply "${FILESDIR}"/${P}-openssl-1.1.0-fix.patch
+       eapply "${FILESDIR}"/${P}-glibc-2.30.patch
 
        local confCC="$(tc-getCC)"
        local confCCOPTS="${CFLAGS}"

Reply via email to