summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2011-08-11 16:33:31 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2011-08-11 16:33:31 +0200
commit4a1aaec0d8537f663a25b889bdcbf947ddf58d28 (patch)
tree4854a9143762a3dbc30130d78374cd47b8e85ebe
parent85d430f637b926602b97d08b9aa91c0fe0e09311 (diff)
Fix spurious port deallocation
* patches/proc_exception.patch: New patch to fix spurious port deallocation.
-rw-r--r--debian/changelog1
-rw-r--r--debian/patches/proc_exception.patch19
-rw-r--r--debian/patches/series1
3 files changed, 21 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index 515f0af1..d4a6f526 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,7 @@ hurd (20110519-4) UNRELEASED; urgency=low
* local/setup-translators: Restore /dev/shm creation.
* patches/libdiskfs_sync.patch: New patch to fix sync at shutdown.
+ * patches/proc_exception.patch: New patch to fix spurious port deallocation.
-- Samuel Thibault <sthibault@debian.org> Mon, 01 Aug 2011 22:53:23 +0200
diff --git a/debian/patches/proc_exception.patch b/debian/patches/proc_exception.patch
new file mode 100644
index 00000000..9b6110cc
--- /dev/null
+++ b/debian/patches/proc_exception.patch
@@ -0,0 +1,19 @@
+If proc_exception_raise() actually managed to sent its message, the reply port
+has already been consumed, so we can't send a reply to the requester any more...
+
+TODO: this introduces leaks in some cases ; check in which error cases
+proc_exception_raise() has consumed the reply port anyway.
+
+diff --git a/proc/mgt.c b/proc/mgt.c
+index 5373d10..1180c70 100644
+--- a/proc/mgt.c
++++ b/proc/mgt.c
+@@ -499,7 +499,7 @@ S_proc_exception_raise (mach_port_t excport,
+
+ mach_port_destroy (mach_task_self (), thread);
+
+- return 0;
++ return MIG_NO_REPLY;
+ }
+
+ }
diff --git a/debian/patches/series b/debian/patches/series
index 9a7e4bce..59151900 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -31,3 +31,4 @@ auth-intr-cure.patch
libpager_deadlock.patch
libdiskfs_self-reauth.patch
libdiskfs_sync.patch
+proc_exception.patch