libtirpc: upgraded package to upstream

Upgraded net-libs/libtirpc to version 1.3.3 on amd64, arm64

BUG=b/241081868
TEST=presubmit
RELEASE_NOTE=upgrade libtirpc to 1.3.3 and fix CVE-2021-46828.

Change-Id: I605c4075fc18b3ecd4f9d47684da7bc70fae790b
Reviewed-on: https://cos-review.googlesource.com/c/third_party/overlays/portage-stable/+/36796
Tested-by: Cusky Presubmit Bot <presubmit@cos-infra-prod.iam.gserviceaccount.com>
Reviewed-by: Vaibhav Rustagi <vaibhavrustagi@google.com>
diff --git a/net-libs/libtirpc/Manifest b/net-libs/libtirpc/Manifest
index 16e60b3..2767367 100644
--- a/net-libs/libtirpc/Manifest
+++ b/net-libs/libtirpc/Manifest
@@ -1,2 +1,2 @@
-DIST libtirpc-1.0.2.tar.bz2 509601 BLAKE2B 7ccf23ca200e2027a66a3105d9b3d0612ac66a08498931f66526a291be6ddef8e7df533af4d44a0e4a1178edd6d51ae39ca50c2536b9b1be7179e7f17cfd165e SHA512 6c819019a8e81d8263d3c509b2eee59ba1ef092222c5a0a8d28f004c711afa252097eca7e6b0b919b2d780883dfd9ee7a363df4cee7fd2c9159a065257637cec
+DIST libtirpc-1.3.3.tar.bz2 562812 BLAKE2B e229869b05103d912b677f78648dce1f7fa7649bdf44b782a5fb97635eecf07f768bbc0ef25c0f065c8253fbe37c12b80934d9102b7345adfc4102897458b487 SHA512 df0781a74ff9ded2d3c4f5eb7e05496b9f58eac8060c02c68331dc14c4a00304dcd19f46836f5756fe0d9d27095fd463d42dd696fcdff891516711b7d63deabe
 DIST libtirpc-glibc-nfs.tar.xz 8948 BLAKE2B 7316623d9f2b6928e296137fe2bf6794b208d549c2ffba9e4a35b47f7b04bf023798a09f38c02d039debf6adc466d7689cf3c8274d71a22eaff08729642c0a28 SHA512 90255bf0a27af16164e0710dd940778609925d473f4343093ff19d98cc4f23023788bf4edf0178eae1961afc0ba8b69b273de95b7d7e2afdb706701d8ba6f7ba
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
deleted file mode 100644
index 91619b7..0000000
--- a/net-libs/libtirpc/files/libtirpc-1.0.2-bcopy-to-memmove.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-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
deleted file mode 100644
index 64b516e..0000000
--- a/net-libs/libtirpc/files/libtirpc-1.0.2-bzero-to-memset.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-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
deleted file mode 100644
index 174f4e3..0000000
--- a/net-libs/libtirpc/files/libtirpc-1.0.2-exports.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-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
deleted file mode 100644
index 6d583e6..0000000
--- a/net-libs/libtirpc/files/libtirpc-1.0.2-glibc-2.26.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-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 */
diff --git a/net-libs/libtirpc/files/libtirpc-1.3.3-release-version.patch b/net-libs/libtirpc/files/libtirpc-1.3.3-release-version.patch
new file mode 100644
index 0000000..e80b022
--- /dev/null
+++ b/net-libs/libtirpc/files/libtirpc-1.3.3-release-version.patch
@@ -0,0 +1,91 @@
+https://git.linux-nfs.org/?p=steved/libtirpc.git;a=commitdiff;h=0fb94eef5062d2657d75eee686fa47238fafa312
+
+From: Steve Dickson <steved@redhat.com>
+Date: Sun, 7 Aug 2022 12:57:19 -0400
+Subject: [PATCH] Release: 1.3.3
+
+Signed-off-by: Steve Dickson <steved@redhat.com>
+--- a/configure
++++ b/configure
+@@ -1,6 +1,6 @@
+ #! /bin/sh
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by GNU Autoconf 2.71 for libtirpc 1.3.2.
++# Generated by GNU Autoconf 2.71 for libtirpc 1.3.3.
+ #
+ #
+ # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
+@@ -618,8 +618,8 @@ MAKEFLAGS=
+ # Identity of this package.
+ PACKAGE_NAME='libtirpc'
+ PACKAGE_TARNAME='libtirpc'
+-PACKAGE_VERSION='1.3.2'
+-PACKAGE_STRING='libtirpc 1.3.2'
++PACKAGE_VERSION='1.3.3'
++PACKAGE_STRING='libtirpc 1.3.3'
+ PACKAGE_BUGREPORT=''
+ PACKAGE_URL=''
+ 
+@@ -1373,7 +1373,7 @@ if test "$ac_init_help" = "long"; then
+   # Omit some internal or obsolete options to make the list less imposing.
+   # This message is too long to be a string in the A/UX 3.1 sh.
+   cat <<_ACEOF
+-\`configure' configures libtirpc 1.3.2 to adapt to many kinds of systems.
++\`configure' configures libtirpc 1.3.3 to adapt to many kinds of systems.
+ 
+ Usage: $0 [OPTION]... [VAR=VALUE]...
+ 
+@@ -1444,7 +1444,7 @@ fi
+ 
+ if test -n "$ac_init_help"; then
+   case $ac_init_help in
+-     short | recursive ) echo "Configuration of libtirpc 1.3.2:";;
++     short | recursive ) echo "Configuration of libtirpc 1.3.3:";;
+    esac
+   cat <<\_ACEOF
+ 
+@@ -1559,7 +1559,7 @@ fi
+ test -n "$ac_init_help" && exit $ac_status
+ if $ac_init_version; then
+   cat <<\_ACEOF
+-libtirpc configure 1.3.2
++libtirpc configure 1.3.3
+ generated by GNU Autoconf 2.71
+ 
+ Copyright (C) 2021 Free Software Foundation, Inc.
+@@ -1815,7 +1815,7 @@ cat >config.log <<_ACEOF
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+ 
+-It was created by libtirpc $as_me 1.3.2, which was
++It was created by libtirpc $as_me 1.3.3, which was
+ generated by GNU Autoconf 2.71.  Invocation command line was
+ 
+   $ $0$ac_configure_args_raw
+@@ -3084,7 +3084,7 @@ fi
+ 
+ # Define the identity of the package.
+  PACKAGE='libtirpc'
+- VERSION='1.3.2'
++ VERSION='1.3.3'
+ 
+ 
+ printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
+@@ -14643,7 +14662,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ # report actual input values of CONFIG_FILES etc. instead of their
+ # values after options handling.
+ ac_log="
+-This file was extended by libtirpc $as_me 1.3.2, which was
++This file was extended by libtirpc $as_me 1.3.3, which was
+ generated by GNU Autoconf 2.71.  Invocation command line was
+ 
+   CONFIG_FILES    = $CONFIG_FILES
+@@ -14711,7 +14730,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_cs_config='$ac_cs_config_escaped'
+ ac_cs_version="\\
+-libtirpc config.status 1.3.2
++libtirpc config.status 1.3.3
+ configured by $0, generated by GNU Autoconf 2.71,
+   with options \\"\$ac_cs_config\\"
+ 
diff --git a/net-libs/libtirpc/libtirpc-1.0.2-r1.ebuild b/net-libs/libtirpc/libtirpc-1.0.2-r1.ebuild
deleted file mode 100644
index a91299a..0000000
--- a/net-libs/libtirpc/libtirpc-1.0.2-r1.ebuild
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-
-inherit autotools 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="*"
-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}/${PN}-1.0.2-bcopy-to-memmove.patch"
-	"${FILESDIR}/${PN}-1.0.2-bzero-to-memset.patch"
-	"${FILESDIR}/${PN}-1.0.2-glibc-2.26.patch"
-	"${FILESDIR}/${PN}-1.0.2-exports.patch"
-)
-
-src_prepare() {
-	cp -r "${WORKDIR}"/tirpc "${S}"/ || die
-	epatch "${PATCHES[@]}"
-	epatch_user
-	eautoreconf
-}
-
-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
-}
diff --git a/net-libs/libtirpc/libtirpc-1.3.3.ebuild b/net-libs/libtirpc/libtirpc-1.3.3.ebuild
new file mode 100644
index 0000000..e5f596c
--- /dev/null
+++ b/net-libs/libtirpc/libtirpc-1.3.3.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit multilib-minimal usr-ldscript
+
+DESCRIPTION="Transport Independent RPC library (SunRPC replacement)"
+HOMEPAGE="https://sourceforge.net/projects/libtirpc/ https://git.linux-nfs.org/?p=steved/libtirpc.git"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2
+	mirror://gentoo/${PN}-glibc-nfs.tar.xz"
+
+LICENSE="BSD BSD-2 BSD-4 LGPL-2.1+"
+SLOT="0/3" # subslot matches SONAME major
+KEYWORDS="*"
+IUSE="ipv6 kerberos static-libs"
+
+RDEPEND="kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}
+	elibc_musl? ( sys-libs/queue-standalone )"
+BDEPEND="
+	app-arch/xz-utils
+	virtual/pkgconfig"
+
+PATCHES=(
+	"${FILESDIR}"/${P}-release-version.patch
+)
+
+src_prepare() {
+	cp -ra "${WORKDIR}"/tirpc "${S}"/ || die
+
+	default
+}
+
+multilib_src_configure() {
+	local myeconfargs=(
+		$(use_enable ipv6)
+		$(use_enable kerberos gssapi)
+		$(use_enable static-libs static)
+	)
+
+	ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
+}
+
+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.
+	if ! use static-libs ; then
+		find "${ED}" -name "*.la" -delete || die
+	fi
+}