]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Y2038: add function __clntudp_create64
authorAlbert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr>
Thu, 12 Apr 2018 18:46:27 +0000 (20:46 +0200)
committerAlbert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr>
Wed, 24 Oct 2018 10:53:27 +0000 (12:53 +0200)
sunrpc/clnt_udp.c
sunrpc/rpc/clnt.h

index c2436e3ebcc8cb289ff8152e06f9e5a7f625392b..27a324465a0c737192f0e555231b253ea456d475 100644 (file)
@@ -644,3 +644,22 @@ clntudp_destroy (CLIENT *cl)
   mem_free ((caddr_t) cu, (sizeof (*cu) + cu->cu_sendsz + cu->cu_recvsz));
   mem_free ((caddr_t) cl, sizeof (CLIENT));
 }
+
+/* 64-bit time versions */
+
+CLIENT *
+__clntudp_create64 (struct sockaddr_in *raddr, u_long program, u_long version,
+                   struct __timeval64 wait, int *sockp)
+{
+  struct timeval wait32;
+
+  if (wait.tv_sec > INT32_MAX || wait.tv_sec < INT32_MIN)
+  {
+    return NULL;
+  }  
+
+  wait32.tv_sec = wait.tv_sec;
+  wait32.tv_usec = wait.tv_usec;
+
+  return clntudp_create (raddr, program, version, wait32, sockp);
+}
index f4d4a941c751adb3e984a18ed5b195e3311a7fa9..b24b5ccafebb9d6e55c9b560504be9de6d2236c4 100644 (file)
@@ -329,6 +329,18 @@ extern CLIENT *clnttcp_create (struct sockaddr_in *__raddr, u_long __prog,
  *     u_int sendsz;
  *     u_int recvsz;
  */
+#ifdef __USE_TIME_BITS64
+# if defined(__REDIRECT)
+extern CLIENT * __REDIRECT (clntudp_create,(struct sockaddr_in *__raddr,
+                                            u_long __program,
+                                           u_long __version,
+                                           struct timeval __wait_resend,
+                                           int *__sockp),
+                            __clntudp_create64) __THROW;
+# else
+# define clntudp_create __clntudp_create64
+# endif
+#endif
 extern CLIENT *clntudp_create (struct sockaddr_in *__raddr, u_long __program,
                               u_long __version, struct timeval __wait_resend,
                               int *__sockp) __THROW;