diff --git a/bugfix-rpcbind-GETADDR-return-client-ip.patch b/bugfix-rpcbind-GETADDR-return-client-ip.patch deleted file mode 100644 index a099cae..0000000 --- a/bugfix-rpcbind-GETADDR-return-client-ip.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 8e0eb02df52d15dd4317abeddec427cdbac4da3c Mon Sep 17 00:00:00 2001 -From: huyan -Date: Mon, 8 Jul 2019 02:10:44 +0000 -Subject: [PATCH] backport bugfix rpcbind GETADDR return client ip - ---- - src/util.c | 45 +++++++++++++++++++++++++++++++++++++++------ - 1 file changed, 39 insertions(+), 6 deletions(-) - -diff --git a/src/util.c b/src/util.c -index 74b0284..d722d4f 100644 ---- a/src/util.c -+++ b/src/util.c -@@ -103,7 +103,7 @@ char * - addrmerge(struct netbuf *caller, char *serv_uaddr, char *clnt_uaddr, - char *netid) - { -- struct ifaddrs *ifap, *ifp = NULL, *bestif; -+ struct ifaddrs *ifap, *ifp = NULL, *bestif, *exactif; - struct netbuf *serv_nbp = NULL, *hint_nbp = NULL, tbuf; - struct sockaddr *caller_sa, *hint_sa, *ifsa, *ifmasksa, *serv_sa; - struct sockaddr_storage ss; -@@ -157,7 +157,12 @@ addrmerge(struct netbuf *caller, char *serv_uaddr, char *clnt_uaddr, - * network portion of its address is equal to that of the client. - * If so, we have found the interface that we want to use. - */ -- bestif = NULL; -+ bestif = NULL; /* first interface UP with same network & family */ -+ exactif = NULL; /* the interface requested by the client */ -+ u_int8_t maskAllBits[16] = { /* 16 bytes for IPv6 */ -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; -+ - for (ifap = ifp; ifap != NULL; ifap = ifap->ifa_next) { - ifsa = ifap->ifa_addr; - ifmasksa = ifap->ifa_netmask; -@@ -175,8 +180,21 @@ addrmerge(struct netbuf *caller, char *serv_uaddr, char *clnt_uaddr, - if (!bitmaskcmp(&SA2SINADDR(ifsa), - &SA2SINADDR(hint_sa), &SA2SINADDR(ifmasksa), - sizeof(struct in_addr))) { -- bestif = ifap; -- goto found; -+ if (getenv("RPCBIND_GETADDR_RETURN_CLIENT_IP") == NULL) { -+ bestif = ifap; -+ goto found; -+ } -+ -+ if(!bestif) /* for compatibility with previous code */ -+ bestif = ifap; -+ /* Is this an exact match? */ -+ if (!bitmaskcmp(&SA2SINADDR(ifsa), -+ &SA2SINADDR(hint_sa), maskAllBits, -+ sizeof(struct in_addr))) { -+ exactif = ifap; -+ goto found; -+ } -+ /* else go-on looking for an exact match */ - } - break; - #ifdef INET6 -@@ -197,8 +215,21 @@ addrmerge(struct netbuf *caller, char *serv_uaddr, char *clnt_uaddr, - } else if (!bitmaskcmp(&SA2SIN6ADDR(ifsa), - &SA2SIN6ADDR(hint_sa), &SA2SIN6ADDR(ifmasksa), - sizeof(struct in6_addr))) { -- bestif = ifap; -- goto found; -+ if (getenv("RPCBIND_GETADDR_RETURN_CLIENT_IP") == NULL) { -+ bestif = ifap; -+ goto found; -+ } -+ -+ if(!bestif) /* for compatibility with previous code */ -+ bestif = ifap; -+ /* Is this an exact match? */ -+ if (!bitmaskcmp(&SA2SIN6ADDR(ifsa), -+ &SA2SIN6ADDR(hint_sa), maskAllBits, -+ sizeof(struct in6_addr))) { -+ exactif = ifap; -+ goto found; -+ } -+ /* else go-on looking for an exact match */ - } - break; - #endif -@@ -219,6 +250,8 @@ addrmerge(struct netbuf *caller, char *serv_uaddr, char *clnt_uaddr, - goto freeit; - - found: -+ if(exactif) -+ bestif = exactif; - /* - * Construct the new address using the the address from - * `bestif', and the port number from `serv_uaddr'. --- -1.7.12.4 - diff --git a/rpcbind-1.2.5.tar.bz2 b/rpcbind-1.2.5.tar.bz2 deleted file mode 100644 index 79c7225..0000000 Binary files a/rpcbind-1.2.5.tar.bz2 and /dev/null differ diff --git a/rpcbind-1.2.6.tar.bz2 b/rpcbind-1.2.6.tar.bz2 new file mode 100644 index 0000000..311c2e7 Binary files /dev/null and b/rpcbind-1.2.6.tar.bz2 differ diff --git a/rpcbind.spec b/rpcbind.spec index be0a579..0f36a2c 100644 --- a/rpcbind.spec +++ b/rpcbind.spec @@ -2,8 +2,8 @@ %global rpcbind_state_dir %{_rundir}/rpcbind Name: rpcbind -Version: 1.2.5 -Release: 2 +Version: 1.2.6 +Release: 1 Summary: Universal addresses to RPC program number mapper License: BSD @@ -25,7 +25,6 @@ Patch101: %{name}-0.2.3-systemd-tmpfiles.patch Patch102: %{name}-0.2.4-runstatdir.patch Patch103: %{name}-0.2.4-systemd-service.patch Patch104: %{name}-0.2.4-systemd-rundir.patch -Patch6000: bugfix-%{name}-GETADDR-return-client-ip.patch Patch6001: CVE-2017-8779.patch Patch9000: bugfix-listen-tcp-port-111.patch @@ -46,7 +45,7 @@ host to be able to make RPC calls on a server on that machine. autoreconf -fisv %configure --enable-warmstarts --with-statedir="%rpcbind_state_dir" \ --with-rpcuser="%rpcbind_user_group" --with-nss-modules="files altfiles" \ - --sbindir=%{_bindir} --enable-debug + --sbindir=%{_bindir} --enable-debug --enable-rmtcalls make all @@ -57,6 +56,7 @@ install -m 0755 -d %{buildroot}%{_tmpfilesdir} install -m 0755 -d %{buildroot}%{_mandir}/man8 install -m 0755 -d %{buildroot}%{rpcbind_state_dir} %make_install +make DESTDIR=$RPM_BUILD_ROOT install install -m 644 %{SOURCE1} %{buildroot}/etc/sysconfig/%{name} @@ -115,6 +115,12 @@ fi %{_mandir}/man8/*.8.gz %changelog +* Fri Dec 03 2021 quanhongfei - 1.2.6-1 +- Type:requirements +- Id:NA +- SUG:NA +- DESC:update rpcbind to 1.2.6 + * Thu Oct 10 2019 openEuler Buildteam - 1.2.5-2 - Type:bugfix - Id:NA