diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
commit | 4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch) | |
tree | ba5f07bf3f9d22d82e54a462313f5d244036c768 /net-libs/libtirpc/files |
reinit the tree, so we can have metadata
Diffstat (limited to 'net-libs/libtirpc/files')
12 files changed, 709 insertions, 0 deletions
diff --git a/net-libs/libtirpc/files/libtirpc-0.2.5-stdarg.patch b/net-libs/libtirpc/files/libtirpc-0.2.5-stdarg.patch new file mode 100644 index 000000000000..8006de39e4dc --- /dev/null +++ b/net-libs/libtirpc/files/libtirpc-0.2.5-stdarg.patch @@ -0,0 +1,29 @@ +From d26607bade0893fe8652e1a0983f9fae59c64649 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Tue, 12 Aug 2014 03:11:41 -0400 +Subject: [PATCH libtirpc] include stdarg.h when used + +The debug.h header uses va_list but doesn't include stdarg.h which +can lead to random build failures. + +Signed-off-by: Mike Frysinger <vapier@gentoo.org> +--- + src/debug.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/debug.h b/src/debug.h +index afc8d57..c971ac3 100644 +--- a/src/debug.h ++++ b/src/debug.h +@@ -21,6 +21,8 @@ + + #ifndef _DEBUG_H + #define _DEBUG_H ++ ++#include <stdarg.h> + #include <syslog.h> + + extern int libtirpc_debug_level; +-- +2.0.0 + diff --git a/net-libs/libtirpc/files/libtirpc-1.0.1-CVE-2017-8779.patch b/net-libs/libtirpc/files/libtirpc-1.0.1-CVE-2017-8779.patch new file mode 100644 index 000000000000..91a50fad6497 --- /dev/null +++ b/net-libs/libtirpc/files/libtirpc-1.0.1-CVE-2017-8779.patch @@ -0,0 +1,255 @@ +diff --git a/src/rpc_generic.c b/src/rpc_generic.c +index 2f09a8f..589cbd5 100644 +--- a/src/rpc_generic.c ++++ b/src/rpc_generic.c +@@ -615,6 +615,9 @@ __rpc_taddr2uaddr_af(int af, const struct netbuf *nbuf) + + switch (af) { + case AF_INET: ++ if (nbuf->len < sizeof(*sin)) { ++ return NULL; ++ } + sin = nbuf->buf; + if (inet_ntop(af, &sin->sin_addr, namebuf, sizeof namebuf) + == NULL) +@@ -626,6 +629,9 @@ __rpc_taddr2uaddr_af(int af, const struct netbuf *nbuf) + break; + #ifdef INET6 + case AF_INET6: ++ if (nbuf->len < sizeof(*sin6)) { ++ return NULL; ++ } + sin6 = nbuf->buf; + if (inet_ntop(af, &sin6->sin6_addr, namebuf6, sizeof namebuf6) + == NULL) +@@ -667,6 +673,8 @@ __rpc_uaddr2taddr_af(int af, const char *uaddr) + + port = 0; + sin = NULL; ++ if (uaddr == NULL) ++ return NULL; + addrstr = strdup(uaddr); + if (addrstr == NULL) + return NULL; +diff --git a/src/rpcb_prot.c b/src/rpcb_prot.c +index 43fd385..a923c8e 100644 +--- a/src/rpcb_prot.c ++++ b/src/rpcb_prot.c +@@ -41,6 +41,7 @@ + #include <rpc/types.h> + #include <rpc/xdr.h> + #include <rpc/rpcb_prot.h> ++#include "rpc_com.h" + + bool_t + xdr_rpcb(xdrs, objp) +@@ -53,13 +54,13 @@ xdr_rpcb(xdrs, objp) + if (!xdr_u_int32_t(xdrs, &objp->r_vers)) { + return (FALSE); + } +- if (!xdr_string(xdrs, &objp->r_netid, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->r_netid, RPC_MAXDATASIZE)) { + return (FALSE); + } +- if (!xdr_string(xdrs, &objp->r_addr, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->r_addr, RPC_MAXDATASIZE)) { + return (FALSE); + } +- if (!xdr_string(xdrs, &objp->r_owner, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->r_owner, RPC_MAXDATASIZE)) { + return (FALSE); + } + return (TRUE); +@@ -159,19 +160,19 @@ xdr_rpcb_entry(xdrs, objp) + XDR *xdrs; + rpcb_entry *objp; + { +- if (!xdr_string(xdrs, &objp->r_maddr, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->r_maddr, RPC_MAXDATASIZE)) { + return (FALSE); + } +- if (!xdr_string(xdrs, &objp->r_nc_netid, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->r_nc_netid, RPC_MAXDATASIZE)) { + return (FALSE); + } + if (!xdr_u_int32_t(xdrs, &objp->r_nc_semantics)) { + return (FALSE); + } +- if (!xdr_string(xdrs, &objp->r_nc_protofmly, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->r_nc_protofmly, RPC_MAXDATASIZE)) { + return (FALSE); + } +- if (!xdr_string(xdrs, &objp->r_nc_proto, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->r_nc_proto, RPC_MAXDATASIZE)) { + return (FALSE); + } + return (TRUE); +@@ -292,7 +293,7 @@ xdr_rpcb_rmtcallres(xdrs, p) + bool_t dummy; + struct r_rpcb_rmtcallres *objp = (struct r_rpcb_rmtcallres *)(void *)p; + +- if (!xdr_string(xdrs, &objp->addr, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->addr, RPC_MAXDATASIZE)) { + return (FALSE); + } + if (!xdr_u_int(xdrs, &objp->results.results_len)) { +@@ -312,6 +313,11 @@ xdr_netbuf(xdrs, objp) + if (!xdr_u_int32_t(xdrs, (u_int32_t *) &objp->maxlen)) { + return (FALSE); + } ++ ++ if (objp->maxlen > RPC_MAXDATASIZE) { ++ return (FALSE); ++ } ++ + dummy = xdr_bytes(xdrs, (char **)&(objp->buf), + (u_int *)&(objp->len), objp->maxlen); + return (dummy); +diff --git a/src/rpcb_st_xdr.c b/src/rpcb_st_xdr.c +index 08db745..28e6a48 100644 +--- a/src/rpcb_st_xdr.c ++++ b/src/rpcb_st_xdr.c +@@ -37,6 +37,7 @@ + + + #include <rpc/rpc.h> ++#include "rpc_com.h" + + /* Link list of all the stats about getport and getaddr */ + +@@ -58,7 +59,7 @@ xdr_rpcbs_addrlist(xdrs, objp) + if (!xdr_int(xdrs, &objp->failure)) { + return (FALSE); + } +- if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { + return (FALSE); + } + +@@ -109,7 +110,7 @@ xdr_rpcbs_rmtcalllist(xdrs, objp) + IXDR_PUT_INT32(buf, objp->failure); + IXDR_PUT_INT32(buf, objp->indirect); + } +- if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { + return (FALSE); + } + if (!xdr_pointer(xdrs, (char **)&objp->next, +@@ -147,7 +148,7 @@ xdr_rpcbs_rmtcalllist(xdrs, objp) + objp->failure = (int)IXDR_GET_INT32(buf); + objp->indirect = (int)IXDR_GET_INT32(buf); + } +- if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { + return (FALSE); + } + if (!xdr_pointer(xdrs, (char **)&objp->next, +@@ -175,7 +176,7 @@ xdr_rpcbs_rmtcalllist(xdrs, objp) + if (!xdr_int(xdrs, &objp->indirect)) { + return (FALSE); + } +- if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) { ++ if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) { + return (FALSE); + } + if (!xdr_pointer(xdrs, (char **)&objp->next, +diff --git a/src/xdr.c b/src/xdr.c +index f3fb9ad..b9a1558 100644 +--- a/src/xdr.c ++++ b/src/xdr.c +@@ -42,8 +42,10 @@ + #include <stdlib.h> + #include <string.h> + ++#include <rpc/rpc.h> + #include <rpc/types.h> + #include <rpc/xdr.h> ++#include <rpc/rpc_com.h> + + typedef quad_t longlong_t; /* ANSI long long type */ + typedef u_quad_t u_longlong_t; /* ANSI unsigned long long type */ +@@ -53,7 +55,6 @@ typedef u_quad_t u_longlong_t; /* ANSI unsigned long long type */ + */ + #define XDR_FALSE ((long) 0) + #define XDR_TRUE ((long) 1) +-#define LASTUNSIGNED ((u_int) 0-1) + + /* + * for unit alignment +@@ -629,6 +630,7 @@ xdr_bytes(xdrs, cpp, sizep, maxsize) + { + char *sp = *cpp; /* sp is the actual string pointer */ + u_int nodesize; ++ bool_t ret, allocated = FALSE; + + /* + * first deal with the length since xdr bytes are counted +@@ -652,6 +654,7 @@ xdr_bytes(xdrs, cpp, sizep, maxsize) + } + if (sp == NULL) { + *cpp = sp = mem_alloc(nodesize); ++ allocated = TRUE; + } + if (sp == NULL) { + warnx("xdr_bytes: out of memory"); +@@ -660,7 +663,14 @@ xdr_bytes(xdrs, cpp, sizep, maxsize) + /* FALLTHROUGH */ + + case XDR_ENCODE: +- return (xdr_opaque(xdrs, sp, nodesize)); ++ ret = xdr_opaque(xdrs, sp, nodesize); ++ if ((xdrs->x_op == XDR_DECODE) && (ret == FALSE)) { ++ if (allocated == TRUE) { ++ free(sp); ++ *cpp = NULL; ++ } ++ } ++ return (ret); + + case XDR_FREE: + if (sp != NULL) { +@@ -754,6 +764,7 @@ xdr_string(xdrs, cpp, maxsize) + char *sp = *cpp; /* sp is the actual string pointer */ + u_int size; + u_int nodesize; ++ bool_t ret, allocated = FALSE; + + /* + * first deal with the length since xdr strings are counted-strings +@@ -793,8 +804,10 @@ xdr_string(xdrs, cpp, maxsize) + switch (xdrs->x_op) { + + case XDR_DECODE: +- if (sp == NULL) ++ if (sp == NULL) { + *cpp = sp = mem_alloc(nodesize); ++ allocated = TRUE; ++ } + if (sp == NULL) { + warnx("xdr_string: out of memory"); + return (FALSE); +@@ -803,7 +816,14 @@ xdr_string(xdrs, cpp, maxsize) + /* FALLTHROUGH */ + + case XDR_ENCODE: +- return (xdr_opaque(xdrs, sp, size)); ++ ret = xdr_opaque(xdrs, sp, size); ++ if ((xdrs->x_op == XDR_DECODE) && (ret == FALSE)) { ++ if (allocated == TRUE) { ++ free(sp); ++ *cpp = NULL; ++ } ++ } ++ return (ret); + + case XDR_FREE: + mem_free(sp, nodesize); +@@ -823,7 +843,7 @@ xdr_wrapstring(xdrs, cpp) + XDR *xdrs; + char **cpp; + { +- return xdr_string(xdrs, cpp, LASTUNSIGNED); ++ return xdr_string(xdrs, cpp, RPC_MAXDATASIZE); + } + + /* diff --git a/net-libs/libtirpc/files/libtirpc-1.0.1_add-des_impl-c-7f6bb9a3467a.patch b/net-libs/libtirpc/files/libtirpc-1.0.1_add-des_impl-c-7f6bb9a3467a.patch new file mode 100644 index 000000000000..a62f23d87e94 --- /dev/null +++ b/net-libs/libtirpc/files/libtirpc-1.0.1_add-des_impl-c-7f6bb9a3467a.patch @@ -0,0 +1,29 @@ +From: Thorsten Kukuk <kukuk@thkukuk.de> +Date: Mon, 4 Apr 2016 13:48:04 +0000 (-0400) +Subject: Compile des_crypt.c and des_impl.c +X-Git-Tag: libtirpc-1-0-2-rc3~1 +X-Git-Url: http://git.linux-nfs.org/?p=steved%2Flibtirpc.git;a=commitdiff_plain;h=7f6bb9a3467a57caf43425d213a06aeb7870086b + +Compile des_crypt.c and des_impl.c + +Add des_impl.c to become independent of deprecated functions of glibc + +Fixes: f17b44048003 ('Revert commit c0547c56dafb') +Signed-off-by: Thorsten Kukuk <kukuk@thkukuk.de> +Signed-off-by: Steve Dickson <steved@redhat.com> +--- + +diff --git a/src/Makefile.am b/src/Makefile.am +index e4ed8aa..fba2aa4 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -24,7 +24,7 @@ libtirpc_la_SOURCES = auth_none.c auth_unix.c authunix_prot.c bindresvport.c cln + rpcb_st_xdr.c svc.c svc_auth.c svc_dg.c svc_auth_unix.c svc_auth_none.c \ + svc_auth_des.c \ + svc_generic.c svc_raw.c svc_run.c svc_simple.c svc_vc.c getpeereid.c \ +- auth_time.c auth_des.c authdes_prot.c debug.c ++ auth_time.c auth_des.c authdes_prot.c debug.c des_crypt.c des_impl.c + + ## XDR + libtirpc_la_SOURCES += xdr.c xdr_rec.c xdr_array.c xdr_float.c xdr_mem.c xdr_reference.c xdr_stdio.c xdr_sizeof.c + diff --git a/net-libs/libtirpc/files/libtirpc-1.0.1_ifdef-out-yp-headers-742bbdff6ddf.patch b/net-libs/libtirpc/files/libtirpc-1.0.1_ifdef-out-yp-headers-742bbdff6ddf.patch new file mode 100644 index 000000000000..481ace7e6fcd --- /dev/null +++ b/net-libs/libtirpc/files/libtirpc-1.0.1_ifdef-out-yp-headers-742bbdff6ddf.patch @@ -0,0 +1,30 @@ +From: Thorsten Kukuk <kukuk@thkukuk.de> +Date: Mon, 4 Apr 2016 13:37:32 +0000 (-0400) +Subject: getpublickey.c: ifdef out yp headers +X-Git-Tag: libtirpc-1-0-2-rc3~3 +X-Git-Url: http://git.linux-nfs.org/?p=steved%2Flibtirpc.git;a=commitdiff_plain;h=742bbdff6ddff4dde0d610a842cd8ac0408af0a0 + +getpublickey.c: ifdef out yp headers + +If we don't compile in YP support, don't include YP + +Signed-off-by: Thorsten Kukuk <kukuk@thkukuk.de> +Signed-off-by: Steve Dickson <steved@redhat.com> +--- + +diff --git a/src/getpublickey.c b/src/getpublickey.c +index 764a5f9..8cf4dc2 100644 +--- a/src/getpublickey.c ++++ b/src/getpublickey.c +@@ -38,8 +38,10 @@ + #include <pwd.h> + #include <rpc/rpc.h> + #include <rpc/key_prot.h> ++#ifdef YP + #include <rpcsvc/yp_prot.h> + #include <rpcsvc/ypclnt.h> ++#endif + #include <string.h> + #include <stdlib.h> + + diff --git a/net-libs/libtirpc/files/libtirpc-1.0.1_remove-des-deps-to-glibc-503ac2e9fa56.patch b/net-libs/libtirpc/files/libtirpc-1.0.1_remove-des-deps-to-glibc-503ac2e9fa56.patch new file mode 100644 index 000000000000..0ef15290ea14 --- /dev/null +++ b/net-libs/libtirpc/files/libtirpc-1.0.1_remove-des-deps-to-glibc-503ac2e9fa56.patch @@ -0,0 +1,43 @@ +From: Thorsten Kukuk <kukuk@thkukuk.de> +Date: Mon, 4 Apr 2016 13:51:15 +0000 (-0400) +Subject: Remove des*.c dependencies to glibc +X-Git-Tag: libtirpc-1-0-2-rc3 +X-Git-Url: http://git.linux-nfs.org/?p=steved%2Flibtirpc.git;a=commitdiff_plain;h=503ac2e9fa569d95e366766202a7ca840e28b28a + +Remove des*.c dependencies to glibc + +Our des_impl.c has dependencies to glibc header files +and different arguments then our header file has. +Bring our own code in sync. + +Signed-off-by: Thorsten Kukuk <kukuk@thkukuk.de> +Signed-off-by: Steve Dickson <steved@redhat.com> +--- + +diff --git a/src/des_impl.c b/src/des_impl.c +index c5b7ed6..9dbccaf 100644 +--- a/src/des_impl.c ++++ b/src/des_impl.c +@@ -6,7 +6,8 @@ + /* see <http://www.gnu.org/licenses/> to obtain a copy. */ + #include <string.h> + #include <stdint.h> +-#include <rpc/rpc_des.h> ++#include <sys/types.h> ++#include <rpc/des.h> + + + static const uint32_t des_SPtrans[8][64] = +diff --git a/tirpc/rpc/des.h b/tirpc/rpc/des.h +index d2881ad..018aa48 100644 +--- a/tirpc/rpc/des.h ++++ b/tirpc/rpc/des.h +@@ -82,6 +82,6 @@ struct desparams { + /* + * Software DES. + */ +-extern int _des_crypt( char *, int, struct desparams * ); ++extern int _des_crypt( char *, unsigned, struct desparams * ); + + #endif + diff --git a/net-libs/libtirpc/files/libtirpc-1.0.1_remove-nis-h-dep-5f00f8c78c5d.patch b/net-libs/libtirpc/files/libtirpc-1.0.1_remove-nis-h-dep-5f00f8c78c5d.patch new file mode 100644 index 000000000000..a8ad182f76b4 --- /dev/null +++ b/net-libs/libtirpc/files/libtirpc-1.0.1_remove-nis-h-dep-5f00f8c78c5d.patch @@ -0,0 +1,137 @@ +From: Thorsten Kukuk <kukuk@thkukuk.de> +Date: Mon, 4 Apr 2016 13:44:19 +0000 (-0400) +Subject: Remove dependency to nis.h +X-Git-Tag: libtirpc-1-0-2-rc3~2 +X-Git-Url: http://git.linux-nfs.org/?p=steved%2Flibtirpc.git;a=commitdiff_plain;h=5f00f8c78c5d13437d50c0737ce77ad67fd4361d + +Remove dependency to nis.h + +libtirpc needs rpcsvc/nis.h for compiling, but does not +provide this head file. It's only provided by glibc, +if the sunrpc code is not marked as deprecated, and +by libnsl. But libnsl needs libtirpc to compile... + +Signed-off-by: Steve Dickson <steved@redhat.com> +--- + +diff --git a/src/auth_des.c b/src/auth_des.c +index 4d3639e..af2f61f 100644 +--- a/src/auth_des.c ++++ b/src/auth_des.c +@@ -46,8 +46,8 @@ + #include <rpc/clnt.h> + #include <rpc/xdr.h> + #include <sys/socket.h> +-#undef NIS +-#include <rpcsvc/nis.h> ++ ++#include "nis.h" + + #if defined(LIBC_SCCS) && !defined(lint) + #endif +diff --git a/src/auth_time.c b/src/auth_time.c +index 10e58eb..7f83ab4 100644 +--- a/src/auth_time.c ++++ b/src/auth_time.c +@@ -44,8 +44,8 @@ + #include <rpc/rpcb_prot.h> + //#include <clnt_soc.h> + #include <sys/select.h> +-#undef NIS +-#include <rpcsvc/nis.h> ++ ++#include "nis.h" + + + #ifdef TESTING +diff --git a/src/nis.h b/src/nis.h +new file mode 100644 +index 0000000..588c041 +--- /dev/null ++++ b/src/nis.h +@@ -0,0 +1,70 @@ ++/* ++ * Copyright (c) 2010, Oracle America, Inc. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions are ++ * met: ++ * ++ * * Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * * Redistributions in binary form must reproduce the above ++ * copyright notice, this list of conditions and the following ++ * disclaimer in the documentation and/or other materials ++ * provided with the distribution. ++ * * Neither the name of the "Oracle America, Inc." nor the names of its ++ * contributors may be used to endorse or promote products derived ++ * from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ++ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ++ * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, ++ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE ++ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ++ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ++ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING ++ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#ifndef _INTERNAL_NIS_H ++#define _INTERNAL_NIS_H 1 ++ ++/* This file only contains the definition of nis_server, to be ++ able to compile libtirpc without the need to have a glibc ++ with sunrpc or a libnsl already installed. */ ++ ++#define NIS_PK_NONE 0 ++ ++struct nis_attr { ++ char *zattr_ndx; ++ struct { ++ u_int zattr_val_len; ++ char *zattr_val_val; ++ } zattr_val; ++}; ++typedef struct nis_attr nis_attr; ++ ++typedef char *nis_name; ++ ++struct endpoint { ++ char *uaddr; ++ char *family; ++ char *proto; ++}; ++typedef struct endpoint endpoint; ++ ++struct nis_server { ++ nis_name name; ++ struct { ++ u_int ep_len; ++ endpoint *ep_val; ++ } ep; ++ uint32_t key_type; ++ netobj pkey; ++}; ++typedef struct nis_server nis_server; ++ ++#endif /* ! _INTERNAL_NIS_H */ +diff --git a/src/rpc_soc.c b/src/rpc_soc.c +index 1ec7b3f..ed0892a 100644 +--- a/src/rpc_soc.c ++++ b/src/rpc_soc.c +@@ -61,8 +61,8 @@ + #include <string.h> + #include <unistd.h> + #include <fcntl.h> +-#include <rpcsvc/nis.h> + ++#include "nis.h" + #include "rpc_com.h" + + extern mutex_t rpcsoc_lock; + diff --git a/net-libs/libtirpc/files/libtirpc-1.0.1_uclibc-dont-use-struct-rpcent.patch b/net-libs/libtirpc/files/libtirpc-1.0.1_uclibc-dont-use-struct-rpcent.patch new file mode 100644 index 000000000000..b2760d2b77b4 --- /dev/null +++ b/net-libs/libtirpc/files/libtirpc-1.0.1_uclibc-dont-use-struct-rpcent.patch @@ -0,0 +1,51 @@ +From https://patchwork.kernel.org/patch/5499671/: + + Subject: [6/9] Define struct rpcent on non GNU libc + From: Natanael Copa <ncopa@alpinelinux.org> + X-Patchwork-Id: 5499671 + Message-Id: <1418718540-13667-7-git-send-email-ncopa@alpinelinux.org> + To: libtirpc-devel@lists.sourceforge.net + Cc: linux-nfs@vger.kernel.org, Natanael Copa <ncopa@alpinelinux.org> + Date: Tue, 16 Dec 2014 09:28:57 +0100 + + This fixes the following compile error with musl libc: + getrpcent.c:65:16: error: field 'rpc' has incomplete type + struct rpcent rpc; + ^ + + Signed-off-by: Natanael Copa <ncopa@alpinelinux.org> + --- + This patch could probably be better. It assumes that only GNU libc has + the rpcent struct defined, but the BSDs probably has it too. + + I am not sure if uClibc has it, but uClibc does define __GLIBC__ so it + might be broken there too. + + I looked into using AC_CHECK_MEMBER but I don't think it is a good idea + so depend on config.h since this is a header that will be installed on + the system. + + I also found out that struct rpcent is also defined in + /usr/include/gssrpc/netdb.h but I am unsure if we can depend on that + too since GSS is optional. + + So I am a bit in doubt what the proper fix is. Meanwhile, this works + for musl libc. + +We fix the uClibc case by checking for __UCLIBC__ as well, since uClibc will +define __GLIBC__ as well (why?) as __UCLIBC__. This should not affect the +musl case. +--- + +diff -Naurp libtirpc-1.0.1.orig/tirpc/rpc/rpcent.h libtirpc-1.0.1/tirpc/rpc/rpcent.h +--- libtirpc-1.0.1.orig/tirpc/rpc/rpcent.h 2015-10-30 15:15:14.000000000 +0000 ++++ libtirpc-1.0.1/tirpc/rpc/rpcent.h 2017-07-05 04:58:27.141468000 +0000 +@@ -49,7 +49,7 @@ extern "C" { + #endif + + /* These are defined in /usr/include/rpc/netdb.h */ +-#if !defined(__GLIBC__) ++#if !defined(__GLIBC__) || defined(__UCLIBC__) + struct rpcent { + char *r_name; /* name of server for this rpc program */ + char **r_aliases; /* alias list */ diff --git a/net-libs/libtirpc/files/libtirpc-1.0.1_uclibc-use-memset-not-bzero.patch b/net-libs/libtirpc/files/libtirpc-1.0.1_uclibc-use-memset-not-bzero.patch new file mode 100644 index 000000000000..f7657f74db43 --- /dev/null +++ b/net-libs/libtirpc/files/libtirpc-1.0.1_uclibc-use-memset-not-bzero.patch @@ -0,0 +1,21 @@ +Inspired by a similar fix here: +http://git.yoctoproject.org/cgit.cgi/poky/plain/meta/packages/nfs-utils/files/uclibc_bzero_fix.patch?id=39d8c0fc4a9d14b7bad1442e05c536e28b196a47 + +Because uclibc does not have a working implementation of `__bzero'. +--- + +diff -Naurp libtirpc-1.0.1.orig/src/des_impl.c libtirpc-1.0.1/src/des_impl.c +--- libtirpc-1.0.1.orig/src/des_impl.c 2017-07-05 06:16:07.441468000 +0000 ++++ libtirpc-1.0.1/src/des_impl.c 2017-07-05 06:19:57.351468000 +0000 +@@ -588,7 +588,11 @@ _des_crypt (char *buf, unsigned len, str + } + tin0 = tin1 = tout0 = tout1 = xor0 = xor1 = 0; + tbuf[0] = tbuf[1] = 0; ++#ifndef __UCLIBC__ + __bzero (schedule, sizeof (schedule)); ++#else ++ memset (schedule, 0, sizeof (schedule)); ++#endif + + return (1); + } diff --git a/net-libs/libtirpc/files/libtirpc-1.0.2-bcopy-to-memmove.patch b/net-libs/libtirpc/files/libtirpc-1.0.2-bcopy-to-memmove.patch new file mode 100644 index 000000000000..91619b7ac9fb --- /dev/null +++ b/net-libs/libtirpc/files/libtirpc-1.0.2-bcopy-to-memmove.patch @@ -0,0 +1,49 @@ +diff -Naurp libtirpc-1.0.2.orig/src/auth_time.c libtirpc-1.0.2/src/auth_time.c +--- libtirpc-1.0.2.orig/src/auth_time.c 2017-07-05 11:02:23.000000000 -0400 ++++ libtirpc-1.0.2/src/auth_time.c 2017-07-30 17:48:31.361420071 -0400 +@@ -104,7 +104,7 @@ static int uaddr_to_sockaddr(uaddr, sin) + p_bytes[1] = (unsigned char)a[5] & 0x000000FF; + + sin->sin_family = AF_INET; /* always */ +- bcopy((char *)&p_bytes, (char *)&sin->sin_port, 2); ++ memmove((char *)&sin->sin_port, (char *)&p_bytes, 2); + + return (0); + } +diff -Naurp libtirpc-1.0.2.orig/src/crypt_client.c libtirpc-1.0.2/src/crypt_client.c +--- libtirpc-1.0.2.orig/src/crypt_client.c 2017-07-05 11:02:23.000000000 -0400 ++++ libtirpc-1.0.2/src/crypt_client.c 2017-07-30 17:49:57.911419445 -0400 +@@ -75,8 +75,8 @@ _des_crypt_call(buf, len, dparms) + des_crypt_1_arg.desbuf.desbuf_val = buf; + des_crypt_1_arg.des_dir = dparms->des_dir; + des_crypt_1_arg.des_mode = dparms->des_mode; +- bcopy(dparms->des_ivec, des_crypt_1_arg.des_ivec, 8); +- bcopy(dparms->des_key, des_crypt_1_arg.des_key, 8); ++ memmove(des_crypt_1_arg.des_ivec, dparms->des_ivec, 8); ++ memmove(des_crypt_1_arg.des_key, dparms->des_key, 8); + + result_1 = des_crypt_1(&des_crypt_1_arg, clnt); + if (result_1 == (desresp *) NULL) { +@@ -88,8 +88,8 @@ _des_crypt_call(buf, len, dparms) + + if (result_1->stat == DESERR_NONE || + result_1->stat == DESERR_NOHWDEVICE) { +- bcopy(result_1->desbuf.desbuf_val, buf, len); +- bcopy(result_1->des_ivec, dparms->des_ivec, 8); ++ memmove(buf, result_1->desbuf.desbuf_val, len); ++ memmove(dparms->des_ivec, result_1->des_ivec, 8); + } + + clnt_freeres(clnt, (xdrproc_t)xdr_desresp, result_1); +diff -Naurp libtirpc-1.0.2.orig/src/svc_auth_des.c libtirpc-1.0.2/src/svc_auth_des.c +--- libtirpc-1.0.2.orig/src/svc_auth_des.c 2017-07-05 11:02:23.000000000 -0400 ++++ libtirpc-1.0.2/src/svc_auth_des.c 2017-07-30 17:50:36.591419165 -0400 +@@ -145,7 +145,7 @@ _svcauth_des(rqst, msg) + return (AUTH_BADCRED); + } + cred->adc_fullname.name = area->area_netname; +- bcopy((char *)ixdr, cred->adc_fullname.name, ++ memmove(cred->adc_fullname.name, (char *)ixdr, + (u_int)namelen); + cred->adc_fullname.name[namelen] = 0; + ixdr += (RNDUP(namelen) / BYTES_PER_XDR_UNIT); diff --git a/net-libs/libtirpc/files/libtirpc-1.0.2-bzero-to-memset.patch b/net-libs/libtirpc/files/libtirpc-1.0.2-bzero-to-memset.patch new file mode 100644 index 000000000000..64b516ed8262 --- /dev/null +++ b/net-libs/libtirpc/files/libtirpc-1.0.2-bzero-to-memset.patch @@ -0,0 +1,36 @@ +diff -Naurp libtirpc-1.0.2.orig/src/auth_time.c libtirpc-1.0.2/src/auth_time.c +--- libtirpc-1.0.2.orig/src/auth_time.c 2017-07-05 11:02:23.000000000 -0400 ++++ libtirpc-1.0.2/src/auth_time.c 2017-07-30 17:46:39.481420880 -0400 +@@ -317,7 +317,7 @@ __rpc_get_time_offset(td, srv, thost, ua + sprintf(ipuaddr, "%d.%d.%d.%d.0.111", a1, a2, a3, a4); + useua = &ipuaddr[0]; + +- bzero((char *)&sin, sizeof(sin)); ++ memset((char *)&sin, 0, sizeof(sin)); + if (uaddr_to_sockaddr(useua, &sin)) { + msg("unable to translate uaddr to sockaddr."); + if (needfree) +diff -Naurp libtirpc-1.0.2.orig/src/des_impl.c libtirpc-1.0.2/src/des_impl.c +--- libtirpc-1.0.2.orig/src/des_impl.c 2017-07-05 11:02:23.000000000 -0400 ++++ libtirpc-1.0.2/src/des_impl.c 2017-07-30 17:46:49.581420807 -0400 +@@ -588,7 +588,7 @@ _des_crypt (char *buf, unsigned len, str + } + tin0 = tin1 = tout0 = tout1 = xor0 = xor1 = 0; + tbuf[0] = tbuf[1] = 0; +- __bzero (schedule, sizeof (schedule)); ++ memset (schedule, 0, sizeof (schedule)); + + return (1); + } +diff -Naurp libtirpc-1.0.2.orig/src/svc_auth_des.c libtirpc-1.0.2/src/svc_auth_des.c +--- libtirpc-1.0.2.orig/src/svc_auth_des.c 2017-07-05 11:02:23.000000000 -0400 ++++ libtirpc-1.0.2/src/svc_auth_des.c 2017-07-30 17:46:58.771420741 -0400 +@@ -356,7 +356,7 @@ cache_init() + + authdes_cache = (struct cache_entry *) + mem_alloc(sizeof(struct cache_entry) * AUTHDES_CACHESZ); +- bzero((char *)authdes_cache, ++ memset((char *)authdes_cache, 0, + sizeof(struct cache_entry) * AUTHDES_CACHESZ); + + authdes_lru = (short *)mem_alloc(sizeof(short) * AUTHDES_CACHESZ); diff --git a/net-libs/libtirpc/files/libtirpc-1.0.2-exports.patch b/net-libs/libtirpc/files/libtirpc-1.0.2-exports.patch new file mode 100644 index 000000000000..174f4e3471f8 --- /dev/null +++ b/net-libs/libtirpc/files/libtirpc-1.0.2-exports.patch @@ -0,0 +1,17 @@ +See +https://bugs.alpinelinux.org/issues/7041 +https://git.alpinelinux.org/cgit/aports/commit/?id=9edb53cea056101c4963a04b747bf102de23f919 +(just hit this myself when building libnsl) +... dilfridge + +--- a/src/libtirpc.map ++++ b/src/libtirpc.map +@@ -298,7 +298,7 @@ + key_gendes; + key_get_conv; + key_setsecret; +- key_secret_is_set; ++ key_secretkey_is_set; + key_setnet; + netname2host; + netname2user; diff --git a/net-libs/libtirpc/files/libtirpc-1.0.2-glibc-2.26.patch b/net-libs/libtirpc/files/libtirpc-1.0.2-glibc-2.26.patch new file mode 100644 index 000000000000..6d583e6149d0 --- /dev/null +++ b/net-libs/libtirpc/files/libtirpc-1.0.2-glibc-2.26.patch @@ -0,0 +1,12 @@ +diff --git a/src/xdr_sizeof.c b/src/xdr_sizeof.c +index d23fbd1..79d6707 100644 +--- a/src/xdr_sizeof.c ++++ b/src/xdr_sizeof.c +@@ -39,6 +39,7 @@ + #include <rpc/xdr.h> + #include <sys/types.h> + #include <stdlib.h> ++#include <stdint.h> + #include "un-namespace.h" + + /* ARGSUSED */ |