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

r6463 - in glibc-package/branches/glibc-2.21/debian: . patches patches/hurd-i386



Author: sthibault
Date: 2015-07-09 12:35:40 +0000 (Thu, 09 Jul 2015)
New Revision: 6463

Added:
   glibc-package/branches/glibc-2.21/debian/patches/hurd-i386/cvs-mlock.diff
Modified:
   glibc-package/branches/glibc-2.21/debian/changelog
   glibc-package/branches/glibc-2.21/debian/patches/series
Log:
port r6462 from 2.19: hurd-i386/cvs-mlock.diff: New patch to permit to use mlock from non-root process.

Modified: glibc-package/branches/glibc-2.21/debian/changelog
===================================================================
--- glibc-package/branches/glibc-2.21/debian/changelog	2015-07-09 12:04:13 UTC (rev 6462)
+++ glibc-package/branches/glibc-2.21/debian/changelog	2015-07-09 12:35:40 UTC (rev 6463)
@@ -214,6 +214,13 @@
 
  -- Adam Conrad <adconrad@0c3.net>  Fri, 06 Mar 2015 13:47:43 -0700
 
+glibc (2.19-19) UNRELEASED; urgency=medium
+
+  * patches/hurd-i386/cvs-mlock.diff: New patch to permit to use mlock from
+    non-root process.
+
+ -- Samuel Thibault <sthibault@debian.org>  Thu, 09 Jul 2015 14:02:08 +0200
+
 glibc (2.19-18) unstable; urgency=medium
 
   [ Aurelien Jarno ]

Copied: glibc-package/branches/glibc-2.21/debian/patches/hurd-i386/cvs-mlock.diff (from rev 6462, glibc-package/trunk/debian/patches/hurd-i386/cvs-mlock.diff)
===================================================================
--- glibc-package/branches/glibc-2.21/debian/patches/hurd-i386/cvs-mlock.diff	                        (rev 0)
+++ glibc-package/branches/glibc-2.21/debian/patches/hurd-i386/cvs-mlock.diff	2015-07-09 12:35:40 UTC (rev 6463)
@@ -0,0 +1,72 @@
+commit ed4060f50ea84c7e238110955253647fc091aee9
+Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
+Date:   Thu Jul 9 13:56:30 2015 +0200
+
+    hurd: permit to use mlock from non-root process
+    
+    * sysdeps/mach/hurd/mlock.c (mlock): When __get_privileged_ports
+    returns an error, also try to use host port from __mach_host_self for
+    the __vm_wire call.
+    * sysdeps/mach/hurd/munlock.c (munlock): Likewise.
+
+diff --git a/sysdeps/mach/hurd/mlock.c b/sysdeps/mach/hurd/mlock.c
+index 10078e7..8ef568e 100644
+--- a/sysdeps/mach/hurd/mlock.c
++++ b/sysdeps/mach/hurd/mlock.c
+@@ -28,19 +28,20 @@
+ int
+ mlock (const void *addr, size_t len)
+ {
+-  mach_port_t hostpriv;
++  mach_port_t host;
+   vm_address_t page;
+   error_t err;
+ 
+-  err = __get_privileged_ports (&hostpriv, NULL);
++  err = __get_privileged_ports (&host, NULL);
+   if (err)
+-    return __hurd_fail (EPERM);
++    host = __mach_host_self();
+ 
+   page = trunc_page ((vm_address_t) addr);
+   len = round_page ((vm_address_t) addr + len) - page;
+-  err = __vm_wire (hostpriv, __mach_task_self (), page, len,
+-		   VM_PROT_READ);
+-  __mach_port_deallocate (__mach_task_self (), hostpriv);
++
++  err = __vm_wire (host, __mach_task_self (), page, len, VM_PROT_READ);
++  if (host != __mach_host_self())
++    __mach_port_deallocate (__mach_task_self (), host);
+ 
+   return err ? __hurd_fail (err) : 0;
+ }
+diff --git a/sysdeps/mach/hurd/munlock.c b/sysdeps/mach/hurd/munlock.c
+index 411115d..d063afc 100644
+--- a/sysdeps/mach/hurd/munlock.c
++++ b/sysdeps/mach/hurd/munlock.c
+@@ -27,18 +27,20 @@
+ int
+ munlock (const void *addr, size_t len)
+ {
+-  mach_port_t hostpriv;
++  mach_port_t host;
+   vm_address_t page;
+   error_t err;
+ 
+-  err = __get_privileged_ports (&hostpriv, NULL);
++  err = __get_privileged_ports (&host, NULL);
+   if (err)
+-    return __hurd_fail (EPERM);
++    host = __mach_host_self();
+ 
+   page = trunc_page ((vm_address_t) addr);
+   len = round_page ((vm_address_t) addr + len) - page;
+-  err = __vm_wire (hostpriv, __mach_task_self (), page, len, VM_PROT_NONE);
+-  __mach_port_deallocate (__mach_task_self (), hostpriv);
++
++  err = __vm_wire (host, __mach_task_self (), page, len, VM_PROT_NONE);
++  if (host != __mach_host_self())
++    __mach_port_deallocate (__mach_task_self (), host);
+ 
+   return err ? __hurd_fail (err) : 0;
+ }

Modified: glibc-package/branches/glibc-2.21/debian/patches/series
===================================================================
--- glibc-package/branches/glibc-2.21/debian/patches/series	2015-07-09 12:04:13 UTC (rev 6462)
+++ glibc-package/branches/glibc-2.21/debian/patches/series	2015-07-09 12:35:40 UTC (rev 6463)
@@ -142,6 +142,7 @@
 hurd-i386/cvs-libc-modules.h.diff
 hurd-i386/cvs-warnings.diff
 hurd-i386/cvs-check-local-headers.diff
+hurd-i386/cvs-mlock.diff
 
 i386/local-biarch.diff
 i386/local-cmov.diff


Reply to: