Hi,

Samuel Thibault, le Wed 18 Jan 2006 01:47:44 +0100, a écrit :
> A simple solution would be to change the implementation of mlock(): make
> it call just vm_wire(blabla, VM_PROT_READ),

Here is a working patch.

Regards,
Samuel
[glibc]/ChangeLog
2006-01-18  Samuel Thibault  <[EMAIL PROTECTED]>

        Fix mlock() in all cases except non-readable pages.

        * glibc/sysdeps/mach/hurd/mlock.c (mlock): Give VM_PROT_READ
        instead of VM_PROT_ALL as parameter to __vm_wire function.

--- glibc/sysdeps/mach/hurd/mlock.c     2006-01-18 23:21:11.000000000 +0100
+++ glibc/sysdeps/mach/hurd/mlock.c     2006-01-18 13:35:56.000000000 +0100
@@ -40,7 +40,7 @@ mlock (const void *addr, size_t len)
   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_ALL); /* XXX ? */
+                  VM_PROT_READ);
   __mach_port_deallocate (__mach_task_self (), hostpriv);
 
   return err ? __hurd_fail (err) : 0;
_______________________________________________
Bug-hurd mailing list
Bug-hurd@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-hurd

Reply via email to