diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2018-03-23 04:19:44 +0000 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2018-03-23 04:19:44 +0000 |
commit | c5283d322accc6097afec74eab24550829788bab (patch) | |
tree | b99ce668128d82a026eaa31461643f9173f9b77b /net-libs/libtirpc | |
parent | 5510d9d7d1c93c2ea71a2bd6f0666168808d5dd6 (diff) |
gentoo resync : 23.03.2018
Diffstat (limited to 'net-libs/libtirpc')
-rw-r--r-- | net-libs/libtirpc/Manifest | 5 | ||||
-rw-r--r-- | net-libs/libtirpc/files/libtirpc-1.0.1-CVE-2017-8779.patch | 255 | ||||
-rw-r--r-- | net-libs/libtirpc/libtirpc-1.0.3.ebuild (renamed from net-libs/libtirpc/libtirpc-1.0.1-r1.ebuild) | 28 |
3 files changed, 18 insertions, 270 deletions
diff --git a/net-libs/libtirpc/Manifest b/net-libs/libtirpc/Manifest index b9e5f3378059..8c54513401c5 100644 --- a/net-libs/libtirpc/Manifest +++ b/net-libs/libtirpc/Manifest @@ -1,11 +1,10 @@ -AUX libtirpc-1.0.1-CVE-2017-8779.patch 7032 BLAKE2B 0dae8a3ee695bc1216973a7fd92d30ad7e1bd426f27cac7c64cd6f2cef741509e63431483afb0b1206fd9648d4a6c61df59f9637ed4efe5a20cee219f8bcfcca SHA512 b7c97f6f202cd57c988ff026e2805011942f470c71fdfd81a2647a0e197386db937b022f0056e6ad106bb143c36323835748965b4915a293b89efba3cd171c84 AUX libtirpc-1.0.2-bcopy-to-memmove.patch 2226 BLAKE2B c0a5244f21d9a5531303b317946fe53b695aafc54095f617a3918f28a94033cd0a30b5f3bfd6fe671b64d4919d255298b55fbb4fa6179c255ff561517361d4e5 SHA512 221c85c47ec56edbdb4ce95e0f67680050b8d9f666c6795ceef7f7720acdf05a535e4afbcdc4e2e5eaeb6edc04bd43f65486df772ad2a0c87987d1c204661f00 AUX libtirpc-1.0.2-bzero-to-memset.patch 1587 BLAKE2B ae0358514dedcfa3d7e156dbccf4e8bea9749c37b59e1b187bbc34600bf7980e05213da38287077be08e11a2916cb3c787d83860400e2831ed95f99fdd7ef1e3 SHA512 aaea43a11e02094f9e43640866dffe7ef509362ba169500d6032b088f048eb855a3a7a75f2e7a2c999d6a252cb4b66d970cd8cc76dd0747376cb382b53e43385 AUX libtirpc-1.0.2-exports.patch 424 BLAKE2B c5292cd01b7b8ffd6be3fcd5842f66ce20b7b4b2bfed02c10bb5f5b83db6cacc43949aadfc60fd2023229c6246f3cb3f991413ee1704539625f759ae39b77dbd SHA512 66a4925ed0236aea2e181e9a07677dc9f41c287311c9cb02129d17b9a61b6102997258082d38e45d193a0ceb4b8e2bc0b8dfe1610a298bc508c1f5c70c1b466d AUX libtirpc-1.0.2-glibc-2.26.patch 276 BLAKE2B 8e557e3c40c4c12339d90c238b26ee396f0ed92622907bf829bb2758119d45a401e29610b5b30c1e9177922546bc1fab535d005df43061cbcca09b8be9a0416f SHA512 67256d618db1330eeb616ade4b79376a600ed2457c03b420fc88b9ba89ea2451c9aac3f48c4967bc5695f10e6d8c895370cc10144ecc53ed0d3810d4cf65265a -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 -EBUILD libtirpc-1.0.1-r1.ebuild 1430 BLAKE2B 6e1f54fbc9f1154e2edc7ec3389be828d71e62ef681739660608a3d7c7737508cf97d1a9328167bd43be6a456619c0f7f208f11641afa0115536b5e027d1627f SHA512 a34cfe1e3b527ee2229cce79aef82c3e8efee5fb5aceb260997932a625e4ffe453ff09ea5b52090e6d45c7065e857d684bfd0f8f8b31394b58c4e2fcd2f1bdd9 EBUILD libtirpc-1.0.2-r1.ebuild 1629 BLAKE2B 4d4421e028d91d99d299356d21b4c3dac5ff685523fe181896bb5432a4c83d963bb48aeded711411c1d57870705609d2ec0433999dc06c8eb1d45cb7fb016560 SHA512 a901d84990e99b490243b3e2500541d096c854bc79866d596c53cde1695926ddc906798222f5fb94e9a0cc8ad4b014f169cee5a1325ce30c21cde2ad2eda86c8 +EBUILD libtirpc-1.0.3.ebuild 1556 BLAKE2B 02d80480f8ff502134da6ca8a5643da74af2eb60f41dbc1c9db259000cf5e7d6230bf92fc1cabd69cf81c2d7f857eeef3b4634b3cf1a7fa97bc918bff2ea975a SHA512 7b10e7c06b7057738975899deb03559a955739ddd2cd1a08f9b511a1e991a8297729e782134c1ee1010d1f47f06f124c5ec9b87a7aed6b73ca67f534dc59f16b MISC metadata.xml 335 BLAKE2B 57eb0cadaa82d4fefb0adcbc01bc19d720ebd10256a7188a70e7ae69f147acba7370fcc07813352a067a181bb77321677713cd3ed4cf77f0c815a88a30abbf20 SHA512 d6dd857293827907e545dc6e8631d06682d20e13442f8ce6cbd2e2a789d885c8a788f4ed1d062a8c54c4165d22eb096279d4c2f598e462a57faaf8bec1e9777b 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 index 91a50fad6497..000000000000 --- a/net-libs/libtirpc/files/libtirpc-1.0.1-CVE-2017-8779.patch +++ /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.3.ebuild index 9791662277b2..68d0e2e63358 100644 --- a/net-libs/libtirpc/libtirpc-1.0.1-r1.ebuild +++ b/net-libs/libtirpc/libtirpc-1.0.3.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2017 Gentoo Foundation +# Copyright 1999-2018 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -EAPI="5" +EAPI=6 -inherit multilib-minimal toolchain-funcs eutils +inherit autotools multilib-minimal toolchain-funcs DESCRIPTION="Transport Independent RPC library (SunRPC replacement)" HOMEPAGE="http://libtirpc.sourceforge.net/" @@ -12,7 +12,7 @@ SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2 LICENSE="GPL-2" SLOT="0/3" # subslot matches SONAME major -KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~arm-linux ~x86-linux" IUSE="ipv6 kerberos static-libs" RDEPEND="kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] )" @@ -21,21 +21,23 @@ DEPEND="${RDEPEND} >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]" PATCHES=( - "${FILESDIR}/${P}-CVE-2017-8779.patch" + "${FILESDIR}/${PN}-1.0.2-bcopy-to-memmove.patch" ) src_prepare() { cp -r "${WORKDIR}"/tirpc "${S}"/ || die - epatch "${PATCHES[@]}" - epatch_user + default + eapply_user + eautoreconf } multilib_src_configure() { - ECONF_SOURCE=${S} \ - econf \ - $(use_enable ipv6) \ - $(use_enable kerberos gssapi) \ + local myeconfargs=( + $(use_enable ipv6) + $(use_enable kerberos gssapi) $(use_enable static-libs static) + ) + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" } multilib_src_install() { @@ -56,5 +58,7 @@ multilib_src_install_all() { # 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 + if ! use static-libs ; then + find "${ED}" -name "*.la" -delete || die + fi } |