libtirpc: update to 1.1.4 6940/head
authorAndy Walsh <andy.walsh44+github@gmail.com>
Mon, 3 Sep 2018 08:06:54 +0000 (10:06 +0200)
committerAndy Walsh <andy.walsh44+github@gmail.com>
Mon, 3 Sep 2018 08:06:54 +0000 (10:06 +0200)
* update to 1.1.4
* remove merged patch

Signed-off-by: Andy Walsh <andy.walsh44+github@gmail.com>
libs/libtirpc/Makefile
libs/libtirpc/patches/002-libtirpc-1.0.4-rc2.patch [deleted file]

index 9e50f0b4f8105f22123151ef7d461d8454d23275..d7c8cd25bbec78e266fc35df10bc7dbf6163c15c 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libtirpc
-PKG_VERSION:=1.0.3
-PKG_RELEASE:=2
+PKG_VERSION:=1.1.4
+PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=@SF/libtirpc
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=86c3a78fc1bddefa96111dd233124c703b22a78884203c55c3e06b3be6a0fd5e
+PKG_HASH:=2ca529f02292e10c158562295a1ffd95d2ce8af97820e3534fe1b0e3aec7561d
 
 PKG_MAINTAINER:=Andy Walsh <andy.walsh44+github@gmail.com>
 PKG_LICENSE:=BSD-3-Clause
diff --git a/libs/libtirpc/patches/002-libtirpc-1.0.4-rc2.patch b/libs/libtirpc/patches/002-libtirpc-1.0.4-rc2.patch
deleted file mode 100644 (file)
index 35b38cf..0000000
+++ /dev/null
@@ -1,274 +0,0 @@
-diff --git a/src/clnt_dg.c b/src/clnt_dg.c
-index 04a2aba..eb5467f 100644
---- a/src/clnt_dg.c
-+++ b/src/clnt_dg.c
-@@ -160,15 +160,22 @@ clnt_dg_create(fd, svcaddr, program, version, sendsz, recvsz)
-       thr_sigsetmask(SIG_SETMASK, &newmask, &mask);
-       mutex_lock(&clnt_fd_lock);
-       if (dg_fd_locks == (int *) NULL) {
--              int cv_allocsz;
--              size_t fd_allocsz;
--              int dtbsize = __rpc_dtbsize();
-+              size_t cv_allocsz, fd_allocsz;
-+              unsigned int dtbsize = __rpc_dtbsize();
-+
-+              if ( (size_t) dtbsize > SIZE_MAX/sizeof(cond_t)) {
-+                      mutex_unlock(&clnt_fd_lock);
-+                      thr_sigsetmask(SIG_SETMASK, &(mask), NULL);
-+                      errno = EOVERFLOW;
-+                      goto err1;
-+              }
-               fd_allocsz = dtbsize * sizeof (int);
-               dg_fd_locks = (int *) mem_alloc(fd_allocsz);
-               if (dg_fd_locks == (int *) NULL) {
-                       mutex_unlock(&clnt_fd_lock);
-                       thr_sigsetmask(SIG_SETMASK, &(mask), NULL);
-+                      errno = ENOMEM;
-                       goto err1;
-               } else
-                       memset(dg_fd_locks, '\0', fd_allocsz);
-@@ -180,6 +187,7 @@ clnt_dg_create(fd, svcaddr, program, version, sendsz, recvsz)
-                       dg_fd_locks = (int *) NULL;
-                       mutex_unlock(&clnt_fd_lock);
-                       thr_sigsetmask(SIG_SETMASK, &(mask), NULL);
-+                      errno = ENOMEM;
-                       goto err1;
-               } else {
-                       int i;
-diff --git a/src/clnt_generic.c b/src/clnt_generic.c
-index e5a314f..3f3dabf 100644
---- a/src/clnt_generic.c
-+++ b/src/clnt_generic.c
-@@ -47,7 +47,6 @@
- extern bool_t __rpc_is_local_host(const char *);
- int __rpc_raise_fd(int);
--extern int __binddynport(int fd);
- #ifndef NETIDLEN
- #define       NETIDLEN 32
-@@ -341,8 +340,7 @@ clnt_tli_create(int fd, const struct netconfig *nconf,
-               servtype = nconf->nc_semantics;
-               if (!__rpc_fd2sockinfo(fd, &si))
-                       goto err;
--              if (__binddynport(fd) == -1)
--                      goto err;
-+              bindresvport(fd, NULL);
-       } else {
-               if (!__rpc_fd2sockinfo(fd, &si))
-                       goto err;
-diff --git a/src/clnt_vc.c b/src/clnt_vc.c
-index 6098c3a..3d775c7 100644
---- a/src/clnt_vc.c
-+++ b/src/clnt_vc.c
-@@ -63,6 +63,7 @@
- #include <string.h>
- #include <unistd.h>
- #include <signal.h>
-+#include <stdint.h>
- #include <rpc/rpc.h>
- #include "rpc_com.h"
-@@ -201,14 +202,25 @@ clnt_vc_create(fd, raddr, prog, vers, sendsz, recvsz)
-       thr_sigsetmask(SIG_SETMASK, &newmask, &mask);
-       mutex_lock(&clnt_fd_lock);
-       if (vc_fd_locks == (int *) NULL) {
--              int cv_allocsz, fd_allocsz;
--              int dtbsize = __rpc_dtbsize();
-+              size_t cv_allocsz, fd_allocsz;
-+              unsigned int dtbsize = __rpc_dtbsize();
-+              struct rpc_createerr *ce = &get_rpc_createerr();
-+
-+              if ( (size_t) dtbsize > SIZE_MAX/sizeof(cond_t)) {
-+                      mutex_unlock(&clnt_fd_lock);
-+                      thr_sigsetmask(SIG_SETMASK, &(mask), NULL);
-+                      ce->cf_stat = RPC_SYSTEMERROR;
-+                      ce->cf_error.re_errno = EOVERFLOW;
-+                      goto err;
-+              }
-               fd_allocsz = dtbsize * sizeof (int);
-               vc_fd_locks = (int *) mem_alloc(fd_allocsz);
-               if (vc_fd_locks == (int *) NULL) {
-                       mutex_unlock(&clnt_fd_lock);
-                       thr_sigsetmask(SIG_SETMASK, &(mask), NULL);
-+                      ce->cf_stat = RPC_SYSTEMERROR;
-+                      ce->cf_error.re_errno = ENOMEM;
-                       goto err;
-               } else
-                       memset(vc_fd_locks, '\0', fd_allocsz);
-@@ -221,6 +233,8 @@ clnt_vc_create(fd, raddr, prog, vers, sendsz, recvsz)
-                       vc_fd_locks = (int *) NULL;
-                       mutex_unlock(&clnt_fd_lock);
-                       thr_sigsetmask(SIG_SETMASK, &(mask), NULL);
-+                      ce->cf_stat = RPC_SYSTEMERROR;
-+                      ce->cf_error.re_errno = ENOMEM;
-                       goto err;
-               } else {
-                       int i;
-diff --git a/src/rpc_soc.c b/src/rpc_soc.c
-index af6c482..5a6eeb7 100644
---- a/src/rpc_soc.c
-+++ b/src/rpc_soc.c
-@@ -67,8 +67,6 @@
- extern mutex_t        rpcsoc_lock;
--extern int __binddynport(int fd);
--
- static CLIENT *clnt_com_create(struct sockaddr_in *, rpcprog_t, rpcvers_t,
-     int *, u_int, u_int, char *, int);
- static SVCXPRT *svc_com_create(int, u_int, u_int, char *);
-@@ -147,8 +145,7 @@ clnt_com_create(raddr, prog, vers, sockp, sendsz, recvsz, tp, flags)
-       bindaddr.maxlen = bindaddr.len =  sizeof (struct sockaddr_in);
-       bindaddr.buf = raddr;
--      if (__binddynport(fd) == -1)
--              goto err;
-+      bindresvport(fd, NULL);
-       cl = clnt_tli_create(fd, nconf, &bindaddr, prog, vers,
-                               sendsz, recvsz);
-       if (cl) {
-diff --git a/src/rpcb_clnt.c b/src/rpcb_clnt.c
-index a94fc73..e45736a 100644
---- a/src/rpcb_clnt.c
-+++ b/src/rpcb_clnt.c
-@@ -752,7 +752,7 @@ __try_protocol_version_2(program, version, nconf, host, tp)
-       client = getpmaphandle(nconf, host, &parms.r_addr);
-       if (client == NULL)
--              return (NULL);
-+              goto error;
-       /*
-        * Set retry timeout.
-@@ -771,11 +771,11 @@ __try_protocol_version_2(program, version, nconf, host, tp)
-       if (clnt_st != RPC_SUCCESS) {
-               rpc_createerr.cf_stat = RPC_PMAPFAILURE;
-               clnt_geterr(client, &rpc_createerr.cf_error);
--              return (NULL);
-+              goto error;
-       } else if (port == 0) {
-               pmapaddress = NULL;
-               rpc_createerr.cf_stat = RPC_PROGNOTREGISTERED;
--              return (NULL);
-+              goto error;
-       }
-       port = htons(port);
-       CLNT_CONTROL(client, CLGET_SVC_ADDR, (char *)&remote);
-@@ -789,14 +789,24 @@ __try_protocol_version_2(program, version, nconf, host, tp)
-                       free(pmapaddress);
-                       pmapaddress = NULL;
-               }
--              return (NULL);
-+              goto error;
-       }
-       memcpy(pmapaddress->buf, remote.buf, remote.len);
-       memcpy(&((char *)pmapaddress->buf)[sizeof (short)],
-                       (char *)(void *)&port, sizeof (short));
-       pmapaddress->len = pmapaddress->maxlen = remote.len;
-+      CLNT_DESTROY(client);
-       return pmapaddress;
-+
-+error:
-+      if (client) {
-+              CLNT_DESTROY(client);
-+              client = NULL;
-+
-+      }
-+      return (NULL);
-+
- }
- #endif
-@@ -836,6 +846,7 @@ __rpcb_findaddr_timed(program, version, nconf, host, clpp, tp)
-       struct netbuf *address = NULL;
-       rpcvers_t start_vers = RPCBVERS4;
-       struct netbuf servaddr;
-+      struct rpc_err rpcerr;
-       /* parameter checking */
-       if (nconf == NULL) {
-@@ -892,7 +903,8 @@ __rpcb_findaddr_timed(program, version, nconf, host, clpp, tp)
-               clnt_st = CLNT_CALL(client, (rpcproc_t)RPCBPROC_GETADDR,
-                   (xdrproc_t) xdr_rpcb, (char *)(void *)&parms,
-                   (xdrproc_t) xdr_wrapstring, (char *)(void *) &ua, *tp);
--              if (clnt_st == RPC_SUCCESS) {
-+              switch (clnt_st) {
-+              case RPC_SUCCESS:
-                       if ((ua == NULL) || (ua[0] == 0)) {
-                               /* address unknown */
-                               rpc_createerr.cf_stat = RPC_PROGNOTREGISTERED;
-@@ -914,12 +926,15 @@ __rpcb_findaddr_timed(program, version, nconf, host, clpp, tp)
-                           (char *)(void *)&servaddr);
-                       __rpc_fixup_addr(address, &servaddr);
-                       goto done;
--              } else if (clnt_st == RPC_PROGVERSMISMATCH) {
--                      struct rpc_err rpcerr;
-+              case RPC_PROGVERSMISMATCH:
-                       clnt_geterr(client, &rpcerr);
-                       if (rpcerr.re_vers.low > RPCBVERS4)
-                               goto error;  /* a new version, can't handle */
--              } else if (clnt_st != RPC_PROGUNAVAIL) {
-+                      /* Try the next lower version */
-+              case RPC_PROGUNAVAIL:
-+              case RPC_CANTDECODEARGS:
-+                      break;
-+              default:
-                       /* Cant handle this error */
-                       rpc_createerr.cf_stat = clnt_st;
-                       clnt_geterr(client, &rpc_createerr.cf_error);
-@@ -929,7 +944,7 @@ __rpcb_findaddr_timed(program, version, nconf, host, clpp, tp)
- #ifdef PORTMAP        /* Try version 2 for TCP or UDP */
-       if (strcmp(nconf->nc_protofmly, NC_INET) == 0) {
--              address = __try_protocol_version_2(program, 2, nconf, host, tp);
-+              address = __try_protocol_version_2(program, version, nconf, host, tp);
-               if (address == NULL)
-                       goto error;
-       }
-diff --git a/src/xdr_stdio.c b/src/xdr_stdio.c
-index 4410262..846c7bf 100644
---- a/src/xdr_stdio.c
-+++ b/src/xdr_stdio.c
-@@ -38,6 +38,7 @@
-  */
- #include <stdio.h>
-+#include <stdint.h>
- #include <arpa/inet.h>
- #include <rpc/types.h>
-@@ -103,10 +104,12 @@ xdrstdio_getlong(xdrs, lp)
-       XDR *xdrs;
-       long *lp;
- {
-+      int32_t mycopy;
--      if (fread(lp, sizeof(int32_t), 1, (FILE *)xdrs->x_private) != 1)
-+      if (fread(&mycopy, sizeof(int32_t), 1, (FILE *)xdrs->x_private) != 1)
-               return (FALSE);
--      *lp = (long)ntohl((u_int32_t)*lp);
-+
-+      *lp = (long)ntohl(mycopy);
-       return (TRUE);
- }
-@@ -115,8 +118,14 @@ xdrstdio_putlong(xdrs, lp)
-       XDR *xdrs;
-       const long *lp;
- {
--      long mycopy = (long)htonl((u_int32_t)*lp);
-+      int32_t mycopy;
-+
-+#if defined(_LP64)
-+      if ((*lp > UINT32_MAX) || (*lp < INT32_MIN))
-+              return (FALSE);
-+#endif
-+      mycopy = (int32_t)htonl((int32_t)*lp);
-       if (fwrite(&mycopy, sizeof(int32_t), 1, (FILE *)xdrs->x_private) != 1)
-               return (FALSE);
-       return (TRUE);