diff options
-rw-r--r-- | debian/changelog | 2 | ||||
-rw-r--r-- | debian/patches/libdiskfs_self-reauth.patch | 35 | ||||
-rw-r--r-- | debian/patches/series | 1 |
3 files changed, 38 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog index f6125ca8..72749c7c 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 00000000..c9650864 --- /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 5bfb36e5..0f5ebcc8 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 |