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
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-hurd