[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

r5044 - in glibc-package/trunk/debian: . patches patches/hurd-i386



Author: sthibault
Date: 2011-11-27 01:24:37 +0000 (Sun, 27 Nov 2011)
New Revision: 5044

Added:
   glibc-package/trunk/debian/patches/hurd-i386/submitted-hurd-recvfrom.diff
Modified:
   glibc-package/trunk/debian/changelog
   glibc-package/trunk/debian/patches/series
Log:
hurd: fix recvfrom on socketpaire

Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog	2011-11-26 15:58:50 UTC (rev 5043)
+++ glibc-package/trunk/debian/changelog	2011-11-27 01:24:37 UTC (rev 5044)
@@ -48,6 +48,8 @@
   * patches/hurd-i386/submitted-_hurd_socket_server-indexcheck.diff: New patch
     from Pino Toscano to fix crash or spurious deallocation on bogus input.
   * libc0.3.symbols.hurd-i386: Drop removed unused xxx_ and yyy_ RPCs.
+  * patches/hurd-i386/submitted-hurd-recvfrom.diff: New patch from Pino
+    Toscano to fix recvfrom on socketpair.
 
   [ Petr Salinger ]
   * kfreebsd/local-sysdeps.diff: update to revision 3763 (from glibc-bsd).

Added: glibc-package/trunk/debian/patches/hurd-i386/submitted-hurd-recvfrom.diff
===================================================================
--- glibc-package/trunk/debian/patches/hurd-i386/submitted-hurd-recvfrom.diff	                        (rev 0)
+++ glibc-package/trunk/debian/patches/hurd-i386/submitted-hurd-recvfrom.diff	2011-11-27 01:24:37 UTC (rev 5044)
@@ -0,0 +1,31 @@
+hurd: recvfrom(): take into account null address ports
+
+Some kinds of sockets may return a null address port when calling the
+`socket_recv' RPC, so avoid using it in case an address argument buffer is
+asked to be filled.  In such case, set the length of that address buffer to
+zero.
+
+2011-11-26  Pino Toscano  <toscano.pino@tiscali.it>
+
+	* sysdeps/mach/hurd/recvfrom.c (__recvfrom): Check also for a null
+	address port.  Set `addr_len' to 0 when not filling `addrarg'.
+--- a/sysdeps/mach/hurd/recvfrom.c
++++ b/sysdeps/mach/hurd/recvfrom.c
+@@ -55,7 +55,7 @@
+     return __hurd_sockfail (fd, flags, err);
+ 
+   /* Get address data for the returned address port if requested.  */
+-  if (addr != NULL)
++  if (addr != NULL && addrport != MACH_PORT_NULL)
+     {
+       char *buf = (char *) addr;
+       mach_msg_type_number_t buflen = *addr_len;
+@@ -89,6 +89,8 @@
+       if (buflen > 0)
+ 	addr->sa_family = type;
+     }
++  else if (addr_len != NULL)
++    *addr_len = 0;
+ 
+   __mach_port_deallocate (__mach_task_self (), addrport);
+ 

Modified: glibc-package/trunk/debian/patches/series
===================================================================
--- glibc-package/trunk/debian/patches/series	2011-11-26 15:58:50 UTC (rev 5043)
+++ glibc-package/trunk/debian/patches/series	2011-11-27 01:24:37 UTC (rev 5044)
@@ -163,6 +163,7 @@
 hurd-i386/submitted-setresid.diff
 hurd-i386/cvs-sgttyb.diff
 hurd-i386/submitted-_hurd_socket_server-indexcheck.diff
+hurd-i386/submitted-hurd-recvfrom.diff
 
 kfreebsd/submitted-libc_once.diff
 


Reply to: