net-libs/libtirpc: Removed old.
authorLars Wendler <polynomial-c@gentoo.org>
Tue, 20 Mar 2018 12:22:17 +0000 (13:22 +0100)
committerLars Wendler <polynomial-c@gentoo.org>
Tue, 20 Mar 2018 13:36:43 +0000 (14:36 +0100)
Package-Manager: Portage-2.3.24, Repoman-2.3.6

net-libs/libtirpc/Manifest
net-libs/libtirpc/files/libtirpc-1.0.1-CVE-2017-8779.patch [deleted file]
net-libs/libtirpc/libtirpc-1.0.1-r1.ebuild [deleted file]

index 5133ab31777505eeb8306665ba00e599faa30ec1..95af0c27cb39e5912bd263c37f5665a368545c3f 100644 (file)
@@ -1,4 +1,3 @@
-DIST libtirpc-1.0.1.tar.bz2 495125 BLAKE2B bb282c6d0aa097840758b00b37c73f391aabc234b5a6e51282004c2c46b403e2ca66180b77810ec6009ea9c9a2a6aae7907a15102ff42f51e3e57e151124bf4c SHA512 c9b449e737bc2bd3d56e31e8352f312e89a7ec2a11b73b5ac314e7d82d3b644c611e422b623912453b67b668f86a6de7bb7f18c9495dd15de8e2798ec2ff41c8
 DIST libtirpc-1.0.2.tar.bz2 509601 BLAKE2B 7ccf23ca200e2027a66a3105d9b3d0612ac66a08498931f66526a291be6ddef8e7df533af4d44a0e4a1178edd6d51ae39ca50c2536b9b1be7179e7f17cfd165e SHA512 6c819019a8e81d8263d3c509b2eee59ba1ef092222c5a0a8d28f004c711afa252097eca7e6b0b919b2d780883dfd9ee7a363df4cee7fd2c9159a065257637cec
 DIST libtirpc-1.0.3.tar.bz2 509831 BLAKE2B 3f908471b3e10f88329793db2c832754b9bb838d115235d7c25256da883960de8d8c94a6941fc9c2a3cc4dca9a77c32b5cb85bb347cc182e5a6255636b79b06e SHA512 1f1cf7dd6f30ddddc919e4caf6db926f1d532f78d5a93e8aaa2acde6b046be0650c4c46549da0ffd5fa7fb9e550af1a871ed6e02ededf504c6667d2e82eba2cc
 DIST libtirpc-glibc-nfs.tar.xz 8948 BLAKE2B 7316623d9f2b6928e296137fe2bf6794b208d549c2ffba9e4a35b47f7b04bf023798a09f38c02d039debf6adc466d7689cf3c8274d71a22eaff08729642c0a28 SHA512 90255bf0a27af16164e0710dd940778609925d473f4343093ff19d98cc4f23023788bf4edf0178eae1961afc0ba8b69b273de95b7d7e2afdb706701d8ba6f7ba
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
deleted file mode 100644 (file)
index 91a50fa..0000000
+++ /dev/null
@@ -1,255 +0,0 @@
-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/libtirpc-1.0.1-r1.ebuild b/net-libs/libtirpc/libtirpc-1.0.1-r1.ebuild
deleted file mode 100644 (file)
index 9791662..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-
-inherit multilib-minimal toolchain-funcs eutils
-
-DESCRIPTION="Transport Independent RPC library (SunRPC replacement)"
-HOMEPAGE="http://libtirpc.sourceforge.net/"
-SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2
-       mirror://gentoo/${PN}-glibc-nfs.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0/3" # subslot matches SONAME major
-KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86"
-IUSE="ipv6 kerberos static-libs"
-
-RDEPEND="kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] )"
-DEPEND="${RDEPEND}
-       app-arch/xz-utils
-       >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]"
-
-PATCHES=(
-       "${FILESDIR}/${P}-CVE-2017-8779.patch"
-)
-
-src_prepare() {
-       cp -r "${WORKDIR}"/tirpc "${S}"/ || die
-       epatch "${PATCHES[@]}"
-       epatch_user
-}
-
-multilib_src_configure() {
-       ECONF_SOURCE=${S} \
-       econf \
-               $(use_enable ipv6) \
-               $(use_enable kerberos gssapi) \
-               $(use_enable static-libs static)
-}
-
-multilib_src_install() {
-       default
-
-       # libtirpc replaces rpc support in glibc, so we need it in /
-       gen_usr_ldscript -a tirpc
-}
-
-multilib_src_install_all() {
-       einstalldocs
-
-       insinto /etc
-       doins doc/netconfig
-
-       insinto /usr/include/tirpc
-       doins -r "${WORKDIR}"/tirpc/*
-
-       # makes sure that the linking order for nfs-utils is proper, as
-       # libtool would inject a libgssglue dependency in the list.
-       use static-libs || prune_libtool_files
-}