Control: tags -1 pending

Hi,

I have uploaded the attached NMU to DELAYED/5 which fixes both of these
bugs (#836021 and #853714). Please tell me if I should cancel it or
delay it longer.

Thanks,
James
diff -Nru yp-tools-3.3/debian/changelog yp-tools-3.3/debian/changelog
--- yp-tools-3.3/debian/changelog       2016-10-23 00:15:55.000000000 +0100
+++ yp-tools-3.3/debian/changelog       2018-03-22 14:55:46.000000000 +0000
@@ -1,3 +1,13 @@
+yp-tools (3.3-5.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * debian/patches:
+    - Add patch to fix FTBFS with GCC 7. (Closes: #853714)
+    - Add patch to fix FTBFS on architectures with strict alignment
+      requirements. (Closes: #836021)
+
+ -- James Cowgill <jcowg...@debian.org>  Thu, 22 Mar 2018 14:55:46 +0000
+
 yp-tools (3.3-5) unstable; urgency=low
 
   * Don't bother installing the domainname utilities (closes: #812532).
diff -Nru yp-tools-3.3/debian/patches/do_ypcall_tr-cast-align.patch 
yp-tools-3.3/debian/patches/do_ypcall_tr-cast-align.patch
--- yp-tools-3.3/debian/patches/do_ypcall_tr-cast-align.patch   1970-01-01 
01:00:00.000000000 +0100
+++ yp-tools-3.3/debian/patches/do_ypcall_tr-cast-align.patch   2018-03-22 
14:54:25.000000000 +0000
@@ -0,0 +1,103 @@
+Description: Fix FTBFS on architectures with strict alignment requirements
+ The do_ypcall_tr "resp" parameter is type caddr_t. This necessitates a cast to
+ ypresp_val * to reference resp->status for use as an argument to ypprot_err
+ which provides the return value for do_ypcall_tr.
+ .
+ Since caddr_t and ypresp_val * can have different alignments on some archs 
such
+ as arm, GCC -Wcast-align will issue a warning which yp-tools is configured to
+ treat as an error.
+ .
+ This commit changes the type of the resp parameter of do_ypcall_tr from 
caddr_t
+ to ypresp_val * in order to avoid the possibility of an unaligned cast.
+Author: Jonathan Ben Avraham <y...@tkos.co.il>
+Author: Thorsten Kukuk <ku...@thkukuk.de>
+Origin: upstream, 
https://github.com/thkukuk/yp-tools/commit/ea66fde92c228bf7b13612b07e4cf1b0667e8481
+Bug-Debian: https://bugs.debian.org/836021
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/lib/do_ypcall.c
++++ b/lib/do_ypcall.c
+@@ -449,15 +449,11 @@ do_ypcall (const char *domain, u_long pr
+ /* Like do_ypcall, but translate the status value if necessary.  */
+ int
+ do_ypcall_tr (const char *domain, u_long prog, xdrproc_t xargs,
+-            caddr_t req, xdrproc_t xres, caddr_t resp)
++            caddr_t req, xdrproc_t xres, ypresp_val *resp)
+ {
+-  int status = do_ypcall (domain, prog, xargs, req, xres, resp);
++  int status = do_ypcall (domain, prog, xargs, req, xres, (caddr_t)resp);
+   if (status == YPERR_SUCCESS)
+-    /* We cast to ypresp_val although the pointer could also be of
+-       type ypresp_key_val or ypresp_master or ypresp_order or
+-       ypresp_maplist.  But the stat element is in a common prefix so
+-       this does not matter.  */
+-    status = ypprot_err (((struct ypresp_val *) resp)->status);
++    status = ypprot_err (resp->status);
+   return status;
+ }
+ 
+--- a/lib/internal.h
++++ b/lib/internal.h
+@@ -19,6 +19,6 @@
+ extern int do_ypcall (const char *domain, u_long prog, xdrproc_t xargs,
+                     caddr_t req, xdrproc_t xres, caddr_t resp);
+ extern int do_ypcall_tr (const char *domain, u_long prog, xdrproc_t xargs,
+-                       caddr_t req, xdrproc_t xres, caddr_t resp);
++                       caddr_t req, xdrproc_t xres, struct ypresp_val *resp);
+ extern int yp_maplist (const char *, struct ypmaplist **);
+ #endif
+--- a/lib/yp_maplist.c
++++ b/lib/yp_maplist.c
+@@ -35,7 +35,7 @@ yp_maplist (const char *indomain, struct
+ 
+   result = do_ypcall_tr (indomain, YPPROC_MAPLIST, (xdrproc_t) xdr_domainname,
+                          (caddr_t) &indomain, (xdrproc_t) xdr_ypresp_maplist,
+-                         (caddr_t) &resp);
++                         (ypresp_val *) &resp);
+ 
+   if (result == YPERR_SUCCESS)
+     {
+--- a/lib/yp_master.c
++++ b/lib/yp_master.c
+@@ -41,7 +41,7 @@ yp_master (const char *indomain, const c
+ 
+   result = do_ypcall_tr (indomain, YPPROC_MASTER, (xdrproc_t) xdr_ypreq_nokey,
+                          (caddr_t) &req, (xdrproc_t) xdr_ypresp_master,
+-                         (caddr_t) &resp);
++                         (ypresp_val *) &resp);
+ 
+   if (result != YPERR_SUCCESS)
+     return result;
+--- a/lib/yp_match.c
++++ b/lib/yp_match.c
+@@ -46,7 +46,7 @@ yp_match (const char *indomain, const ch
+ 
+   result = do_ypcall_tr (indomain, YPPROC_MATCH, (xdrproc_t) xdr_ypreq_key,
+                          (caddr_t) &req, (xdrproc_t) xdr_ypresp_val,
+-                         (caddr_t) &resp);
++                         (ypresp_val *) &resp);
+ 
+   if (result != YPERR_SUCCESS)
+     return result;
+--- a/lib/yp_next.c
++++ b/lib/yp_next.c
+@@ -48,7 +48,7 @@ yp_next (const char *indomain, const cha
+ 
+   result = do_ypcall_tr (indomain, YPPROC_NEXT, (xdrproc_t) xdr_ypreq_key,
+                          (caddr_t) &req, (xdrproc_t) xdr_ypresp_key_val,
+-                         (caddr_t) &resp);
++                         (ypresp_val *) &resp);
+ 
+   if (result != YPERR_SUCCESS)
+     return result;
+--- a/lib/yp_order.c
++++ b/lib/yp_order.c
+@@ -39,7 +39,7 @@ yp_order (const char *indomain, const ch
+   memset (&resp, '\0', sizeof (resp));
+   result = do_ypcall_tr (indomain, YPPROC_ORDER, (xdrproc_t) xdr_ypreq_nokey,
+                          (caddr_t) &req, (xdrproc_t) xdr_ypresp_order,
+-                         (caddr_t) &resp);
++                         (ypresp_val *) &resp);
+ 
+   if (result != YPERR_SUCCESS)
+     return result;
diff -Nru yp-tools-3.3/debian/patches/gcc7.patch 
yp-tools-3.3/debian/patches/gcc7.patch
--- yp-tools-3.3/debian/patches/gcc7.patch      1970-01-01 01:00:00.000000000 
+0100
+++ yp-tools-3.3/debian/patches/gcc7.patch      2018-03-22 14:40:17.000000000 
+0000
@@ -0,0 +1,17 @@
+Description: Fix FTBFS with GCC 7 caused by wrong pointer usage
+Author: Thorsten Kukuk <ku...@thkukuk.de>
+Origin: upstream, 
https://github.com/thkukuk/yp-tools/commit/6188e75cc89c47a786799b73df55a71b777aeb0e
+Bug-Debian: https://bugs.debian.org/853714
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/lib/yp_all_host.c
++++ b/lib/yp_all_host.c
+@@ -106,7 +106,7 @@ yp_all_host (const char *indomain, const
+ 
+   if (hostname == NULL || hostname[0] == '\0' ||
+       indomain == NULL || indomain[0] == '\0' ||
+-      inmap == NULL || inmap == '\0')
++      inmap == NULL || inmap[0] == '\0')
+     return YPERR_BADARGS;
+ 
+   res = YPERR_YPERR;
diff -Nru yp-tools-3.3/debian/patches/series yp-tools-3.3/debian/patches/series
--- yp-tools-3.3/debian/patches/series  2016-08-09 14:50:56.000000000 +0100
+++ yp-tools-3.3/debian/patches/series  2018-03-22 14:49:29.000000000 +0000
@@ -1,3 +1,5 @@
 no-internal-files
 move-headers
 fix-udptimeout
+gcc7.patch
+do_ypcall_tr-cast-align.patch

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to