summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/patches/hurd-make-memory_object-parameter-polymorphic.patch70
-rw-r--r--debian/patches/series3
2 files changed, 72 insertions, 1 deletions
diff --git a/debian/patches/hurd-make-memory_object-parameter-polymorphic.patch b/debian/patches/hurd-make-memory_object-parameter-polymorphic.patch
new file mode 100644
index 00000000..f7f8b5df
--- /dev/null
+++ b/debian/patches/hurd-make-memory_object-parameter-polymorphic.patch
@@ -0,0 +1,70 @@
+From 8fd228ccd454578fb0367d97d95b90f9073a8d7c Mon Sep 17 00:00:00 2001
+From: Justus Winter <4winter@informatik.uni-hamburg.de>
+Date: Thu, 4 Sep 2014 11:19:29 +0200
+Subject: [PATCH] hurd: make memory_object parameter polymorphic
+
+Make the memory_object parameter of default_pager_object_create
+polymorphic. This fixes https://savannah.gnu.org/bugs/?26751 .
+
+* hurd/default_pager.defs (default_pager_object_create): Make
+memory_object parameter polymorphic.
+* mach-defpager/default_pager.c (S_default_pager_object_create):
+Adjust accordingly.
+* trans/proxy-defpager.c (S_default_pager_object_create): Likewise.
+---
+ hurd/default_pager.defs | 2 +-
+ mach-defpager/default_pager.c | 2 ++
+ trans/proxy-defpager.c | 2 ++
+ 3 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/hurd/default_pager.defs b/hurd/default_pager.defs
+index 4885503..1a4290d 100644
+--- a/hurd/default_pager.defs
++++ b/hurd/default_pager.defs
+@@ -43,7 +43,7 @@ DEFAULT_PAGER_IMPORTS
+ routine default_pager_object_create(
+ default_pager : mach_port_t;
+ out memory_object : memory_object_t =
+- MACH_MSG_TYPE_MAKE_SEND;
++ MACH_MSG_TYPE_PORT_SEND;
+ object_size : vm_size_t);
+
+ routine default_pager_info(
+diff --git a/mach-defpager/default_pager.c b/mach-defpager/default_pager.c
+index 380c724..d40a9c9 100644
+--- a/mach-defpager/default_pager.c
++++ b/mach-defpager/default_pager.c
+@@ -3160,6 +3160,7 @@ default_pager()
+ kern_return_t
+ S_default_pager_object_create (mach_port_t pager,
+ mach_port_t *mem_obj,
++ mach_msg_type_name_t *mem_obj_type,
+ vm_size_t size)
+ {
+ default_pager_t ds;
+@@ -3190,6 +3191,7 @@ S_default_pager_object_create (mach_port_t pager,
+ default_pager_add(ds, FALSE);
+
+ *mem_obj = port;
++ *mem_obj_type = MACH_MSG_TYPE_MAKE_SEND;
+ return (KERN_SUCCESS);
+ }
+
+diff --git a/trans/proxy-defpager.c b/trans/proxy-defpager.c
+index 9817657..5fe8ffd 100644
+--- a/trans/proxy-defpager.c
++++ b/trans/proxy-defpager.c
+@@ -45,8 +45,10 @@ allowed (mach_port_t port, int mode)
+ kern_return_t
+ S_default_pager_object_create (mach_port_t default_pager,
+ memory_object_t *memory_object,
++ mach_msg_type_name_t *memory_object_type,
+ vm_size_t object_size)
+ {
++ *memory_object_type = MACH_MSG_TYPE_COPY_SEND;
+ return allowed (default_pager, O_EXEC)
+ ?: default_pager_object_create (real_defpager, memory_object, object_size);
+ }
+--
+2.1.0
+
diff --git a/debian/patches/series b/debian/patches/series
index c4084430..320d4036 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -15,7 +15,7 @@ startup-usr-support.patch
tmp_exec_startup.patch
uptime_w_path_fix.patch
stat_round.patch
-proxy-defpager.diff
+#proxy-defpager.diff
#external.patch
external-splitinit.patch
@@ -56,3 +56,4 @@ mount-bind.patch
xkb-compat.patch
mach-defpager-protected-payload.patch
+hurd-make-memory_object-parameter-polymorphic.patch