Author: sthibault
Date: 2014-08-27 22:56:00 +0000 (Wed, 27 Aug 2014)
New Revision: 6259

Added:
   glibc-package/trunk/debian/patches/hurd-i386/cvs-bind_umask.diff
Removed:
   glibc-package/trunk/debian/patches/hurd-i386/submitted-bind_umask.diff
Modified:
   glibc-package/trunk/debian/changelog
   glibc-package/trunk/debian/patches/series
Log:
submitted-bind_umask.diff commited upstream


Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog        2014-08-27 22:15:05 UTC (rev 
6258)
+++ glibc-package/trunk/debian/changelog        2014-08-27 22:56:00 UTC (rev 
6259)
@@ -3,8 +3,8 @@
   [ Samuel Thibault ]
   * patches/hurd-i386/tg-thread-cancel.diff: Update patch against two other
     overzealous assertions.
-  * patches/hurd-i386/submitted-bind_umask.diff: Split into
-    patches/hurd-i386/submitted-bind_umask2 as requested by upstream.
+  * patches/hurd-i386/submitted-bind_umask.diff: Split into cvs-bind_umask.diff
+    and submitted-bind_umask2.diff as requested by upstream.
 
  -- Aurelien Jarno <aure...@debian.org>  Wed, 27 Aug 2014 08:22:41 +0200
 

Copied: glibc-package/trunk/debian/patches/hurd-i386/cvs-bind_umask.diff (from 
rev 6258, 
glibc-package/trunk/debian/patches/hurd-i386/submitted-bind_umask.diff)
===================================================================
--- glibc-package/trunk/debian/patches/hurd-i386/cvs-bind_umask.diff            
                (rev 0)
+++ glibc-package/trunk/debian/patches/hurd-i386/cvs-bind_umask.diff    
2014-08-27 22:56:00 UTC (rev 6259)
@@ -0,0 +1,76 @@
+2014-08-27  Samuel Thibault  <samuel.thiba...@ens-lyon.org>
+
+       Simplify atomicity of socket creation in bind.
+
+        * sysdeps/mach/hurd/bind.c (__bind): Use dir_lookup(node, "") instead 
of
+        looking up the name after linking the file.
+
+---
+ bind.c |   48 +++++++++++++++++++++++++-----------------------
+ 1 file changed, 25 insertions(+), 23 deletions(-)
+
+--- a/sysdeps/mach/hurd/bind.c
++++ b/sysdeps/mach/hurd/bind.c
+@@ -40,7 +40,7 @@ __bind  (int fd, __CONST_SOCKADDR_ARG ad
+       char *name = _hurd_sun_path_dupa (addr, len);
+       /* For the local domain, we must create a node in the filesystem
+        using the ifsock translator and then fetch the address from it.  */
+-      file_t dir, node;
++      file_t dir, node, ifsock;
+       char *n;
+ 
+       dir = __file_name_split (name, &n);
+@@ -61,36 +61,32 @@ __bind  (int fd, __CONST_SOCKADDR_ARG ad
+                                      MACH_MSG_TYPE_COPY_SEND);
+         if (! err)
+           {
+-            /* Link the node, now a socket, into the target directory.  */
+-            err = __dir_link (dir, node, n, 1);
+-            if (err == EEXIST)
++            enum retry_type doretry;
++            char retryname[1024];
++            /* Get a port to the ifsock translator.  */
++            err = __dir_lookup (node, "", 0, 0, &doretry, retryname, &ifsock);
++            if (! err && (doretry != FS_RETRY_NORMAL || retryname[0] != '\0'))
+               err = EADDRINUSE;
+           }
+-        __mach_port_deallocate (__mach_task_self (), node);
+         if (! err)
+           {
+-            /* Get a port to the ifsock translator.  */
+-            file_t ifsock = __file_name_lookup_under (dir, n, 0, 0);
+-            if (ifsock == MACH_PORT_NULL)
++            /* Get the address port.  */
++            err = __ifsock_getsockaddr (ifsock, &aport);
++            if (err == MIG_BAD_ID || err == EOPNOTSUPP)
++              err = EGRATUITOUS;
++            if (! err)
+               {
+-                err = errno;
+-                /* If we failed, get rid of the node we created.  */
+-                __dir_unlink (dir, n);
+-              }
+-            else
+-              {
+-                /* Get the address port.  */
+-                err = __ifsock_getsockaddr (ifsock, &aport);
+-                if (err == MIG_BAD_ID || err == EOPNOTSUPP)
+-                  /* We are not talking to /hurd/ifsock.  Probably
+-                     someone came in after we linked our node, unlinked
+-                     it, and replaced it with a different node, before we
+-                     did our lookup.  Treat it as if our link had failed
+-                     with EEXIST.  */
++                /* Link the node, now a socket with proper mode, into the
++                   target directory.  */
++                err = __dir_link (dir, node, n, 1);
++                if (err == EEXIST)
+                   err = EADDRINUSE;
++                if (err)
++                  __mach_port_deallocate (__mach_task_self (), aport);
+               }
+             __mach_port_deallocate (__mach_task_self (), ifsock);
+           }
++        __mach_port_deallocate (__mach_task_self (), node);
+       }
+       __mach_port_deallocate (__mach_task_self (), dir);
+ 

Deleted: glibc-package/trunk/debian/patches/hurd-i386/submitted-bind_umask.diff
===================================================================
--- glibc-package/trunk/debian/patches/hurd-i386/submitted-bind_umask.diff      
2014-08-27 22:15:05 UTC (rev 6258)
+++ glibc-package/trunk/debian/patches/hurd-i386/submitted-bind_umask.diff      
2014-08-27 22:56:00 UTC (rev 6259)
@@ -1,76 +0,0 @@
-2014-08-27  Samuel Thibault  <samuel.thiba...@ens-lyon.org>
-
-       Simplify atomicity of socket creation in bind.
-
-        * sysdeps/mach/hurd/bind.c (__bind): Use dir_lookup(node, "") instead 
of
-        looking up the name after linking the file.
-
----
- bind.c |   48 +++++++++++++++++++++++++-----------------------
- 1 file changed, 25 insertions(+), 23 deletions(-)
-
---- a/sysdeps/mach/hurd/bind.c
-+++ b/sysdeps/mach/hurd/bind.c
-@@ -40,7 +40,7 @@ __bind  (int fd, __CONST_SOCKADDR_ARG ad
-       char *name = _hurd_sun_path_dupa (addr, len);
-       /* For the local domain, we must create a node in the filesystem
-        using the ifsock translator and then fetch the address from it.  */
--      file_t dir, node;
-+      file_t dir, node, ifsock;
-       char *n;
- 
-       dir = __file_name_split (name, &n);
-@@ -61,36 +61,32 @@ __bind  (int fd, __CONST_SOCKADDR_ARG ad
-                                      MACH_MSG_TYPE_COPY_SEND);
-         if (! err)
-           {
--            /* Link the node, now a socket, into the target directory.  */
--            err = __dir_link (dir, node, n, 1);
--            if (err == EEXIST)
-+            enum retry_type doretry;
-+            char retryname[1024];
-+            /* Get a port to the ifsock translator.  */
-+            err = __dir_lookup (node, "", 0, 0, &doretry, retryname, &ifsock);
-+            if (! err && (doretry != FS_RETRY_NORMAL || retryname[0] != '\0'))
-               err = EADDRINUSE;
-           }
--        __mach_port_deallocate (__mach_task_self (), node);
-         if (! err)
-           {
--            /* Get a port to the ifsock translator.  */
--            file_t ifsock = __file_name_lookup_under (dir, n, 0, 0);
--            if (ifsock == MACH_PORT_NULL)
-+            /* Get the address port.  */
-+            err = __ifsock_getsockaddr (ifsock, &aport);
-+            if (err == MIG_BAD_ID || err == EOPNOTSUPP)
-+              err = EGRATUITOUS;
-+            if (! err)
-               {
--                err = errno;
--                /* If we failed, get rid of the node we created.  */
--                __dir_unlink (dir, n);
--              }
--            else
--              {
--                /* Get the address port.  */
--                err = __ifsock_getsockaddr (ifsock, &aport);
--                if (err == MIG_BAD_ID || err == EOPNOTSUPP)
--                  /* We are not talking to /hurd/ifsock.  Probably
--                     someone came in after we linked our node, unlinked
--                     it, and replaced it with a different node, before we
--                     did our lookup.  Treat it as if our link had failed
--                     with EEXIST.  */
-+                /* Link the node, now a socket with proper mode, into the
-+                   target directory.  */
-+                err = __dir_link (dir, node, n, 1);
-+                if (err == EEXIST)
-                   err = EADDRINUSE;
-+                if (err)
-+                  __mach_port_deallocate (__mach_task_self (), aport);
-               }
-             __mach_port_deallocate (__mach_task_self (), ifsock);
-           }
-+        __mach_port_deallocate (__mach_task_self (), node);
-       }
-       __mach_port_deallocate (__mach_task_self (), dir);
- 

Modified: glibc-package/trunk/debian/patches/series
===================================================================
--- glibc-package/trunk/debian/patches/series   2014-08-27 22:15:05 UTC (rev 
6258)
+++ glibc-package/trunk/debian/patches/series   2014-08-27 22:56:00 UTC (rev 
6259)
@@ -149,7 +149,7 @@
 hurd-i386/cvs-munmap-0.diff
 hurd-i386/cvs-libpthread_guardsize.diff
 hurd-i386/cvs-libpthread_std_thread.diff
-hurd-i386/submitted-bind_umask.diff
+hurd-i386/cvs-bind_umask.diff
 hurd-i386/submitted-bind_umask2.diff
 
 i386/local-biarch.diff


-- 
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/e1xmm8g-0003vc...@moszumanska.debian.org

Reply via email to