Author: sthibault Date: 2015-07-09 12:04:13 +0000 (Thu, 09 Jul 2015) New Revision: 6462
Added: glibc-package/trunk/debian/patches/hurd-i386/cvs-mlock.diff Modified: glibc-package/trunk/debian/changelog glibc-package/trunk/debian/patches/series Log: hurd-i386/cvs-mlock.diff: New patch to permit to use mlock from non-root process. Modified: glibc-package/trunk/debian/changelog =================================================================== --- glibc-package/trunk/debian/changelog 2015-06-16 18:56:47 UTC (rev 6461) +++ glibc-package/trunk/debian/changelog 2015-07-09 12:04:13 UTC (rev 6462) @@ -1,3 +1,10 @@ +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 <sthiba...@debian.org> Thu, 09 Jul 2015 14:02:08 +0200 + glibc (2.19-18) unstable; urgency=medium [ Aurelien Jarno ] Added: glibc-package/trunk/debian/patches/hurd-i386/cvs-mlock.diff =================================================================== --- glibc-package/trunk/debian/patches/hurd-i386/cvs-mlock.diff (rev 0) +++ glibc-package/trunk/debian/patches/hurd-i386/cvs-mlock.diff 2015-07-09 12:04:13 UTC (rev 6462) @@ -0,0 +1,72 @@ +commit ed4060f50ea84c7e238110955253647fc091aee9 +Author: Samuel Thibault <samuel.thiba...@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/trunk/debian/patches/series =================================================================== --- glibc-package/trunk/debian/patches/series 2015-06-16 18:56:47 UTC (rev 6461) +++ glibc-package/trunk/debian/patches/series 2015-07-09 12:04:13 UTC (rev 6462) @@ -158,6 +158,7 @@ hurd-i386/cvs-libpthread-dlopen.diff hurd-i386/cvs-libpthread-libc-lockP.diff hurd-i386/cvs-libpthread-libc-lockP2.diff +hurd-i386/cvs-mlock.diff i386/local-biarch.diff i386/local-cmov.diff -- To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/e1zdayn-0003qo...@moszumanska.debian.org