commit-hurd
[Top][All Lists]
Advanced

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

[SCM] Debian GNU Hurd packaging branch, master, updated. upstream/201103


From: Samuel Thibault
Subject: [SCM] Debian GNU Hurd packaging branch, master, updated. upstream/20110303-450-gc192b16
Date: Mon, 14 Mar 2011 23:23:42 +0000

The following commit has been merged in the master branch:
commit c192b16409db43c9051e1c60769d81db2e108f36
Author: Samuel Thibault <address@hidden>
Date:   Tue Mar 15 00:23:18 2011 +0100

    Fix one of the spurious mach port deallocation issues
    
      * debian/patches/libdiskfs_self-reauth.patch: Add patch to fix one of the
        spurious mach port deallocation issues.

diff --git a/debian/changelog b/debian/changelog
index f6125ca..72749c7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -24,6 +24,8 @@ hurd (20110303-1) UNRELEASED; urgency=low
     it doesn't exist yet.
   * debian/local/setup-translators, debian/patches/makedev_keep_options.patch:
     Fix -K option into not starting existing translators.
+  * debian/patches/libdiskfs_self-reauth.patch: Add patch to fix one of the
+    spurious mach port deallocation issues.
 
   [ Justus Winter ]
   * debian/hurd.{postinst,postrm}: Add/remove loginpr shell and login user with
diff --git a/debian/patches/libdiskfs_self-reauth.patch 
b/debian/patches/libdiskfs_self-reauth.patch
new file mode 100644
index 0000000..c965086
--- /dev/null
+++ b/debian/patches/libdiskfs_self-reauth.patch
@@ -0,0 +1,35 @@
+"RPC to self with rendez-vous leading to duplicate port destroy"
+
+http://lists.gnu.org/archive/html/bug-hurd/2011-03/msg00045.html
+
+I believe this shouldn't pose problem except a possible port leak in case port
+accounting is not correct somewhere.
+
+diff --git a/libfshelp/fetch-root.c b/libfshelp/fetch-root.c
+index 54d3c0c..6585052 100644
+--- a/libfshelp/fetch-root.c
++++ b/libfshelp/fetch-root.c
+@@ -79,7 +79,9 @@ fshelp_fetch_root (struct transbox *box, void *cookie,
+         if (err)
+           ret = MACH_PORT_NULL;
+ 
+-        mach_port_destroy (mach_task_self (), rend);
++        /* crdir could be ourselves, and thus diskfs_S_io_reauthenticate
++         * would get the same name, so don't _destroy_ it !! */
++        mach_port_deallocate (mach_task_self (), rend);
+ 
+         return ret;
+       }
+diff --git a/libshouldbeinlibc/exec-reauth.c b/libshouldbeinlibc/exec-reauth.c
+index dd267ef..12b34fc 100644
+--- a/libshouldbeinlibc/exec-reauth.c
++++ b/libshouldbeinlibc/exec-reauth.c
+@@ -59,7 +59,7 @@ exec_reauth (auth_t auth, int secure, int must_reauth,
+         if (!err)
+           err = auth_user_authenticate (auth, ref, MACH_MSG_TYPE_MAKE_SEND,
+                                         &newport);
+-        mach_port_destroy (mach_task_self (), ref);
++        mach_port_deallocate (mach_task_self (), ref);
+         if (err)
+           {
+             if (must_reauth)
diff --git a/debian/patches/series b/debian/patches/series
index 5bfb36e..0f5ebcc 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -30,3 +30,4 @@ disable-proc_getnports.patch
 ext2fs_nowait.patch
 auth-intr-cure.patch
 libpager_deadlock.patch
+libdiskfs_self-reauth.patch

-- 
Debian GNU Hurd packaging



reply via email to

[Prev in Thread] Current Thread [Next in Thread]