diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 2012-06-20 13:47:21 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 2012-06-20 13:47:21 +0000 |
commit | b6a036d16968bdc07e9455937f674778d6f90e05 (patch) | |
tree | 0ead2357bd8087bc695663cdd0ea295eb958788f /libexec | |
parent | 86684b2565900870ab39d72f079cea6b09c05332 (diff) |
With MP rthread setups, we cannot remove the X permission from the GOT
entry momentarily, because another thread might attempt lazy resolve.
ok matthew guenther
Diffstat (limited to 'libexec')
-rw-r--r-- | libexec/ld.so/hppa/rtld_machine.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libexec/ld.so/hppa/rtld_machine.c b/libexec/ld.so/hppa/rtld_machine.c index 3d33a937ca3..15bcaaa5114 100644 --- a/libexec/ld.so/hppa/rtld_machine.c +++ b/libexec/ld.so/hppa/rtld_machine.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rtld_machine.c,v 1.23 2011/04/06 11:36:25 miod Exp $ */ +/* $OpenBSD: rtld_machine.c,v 1.24 2012/06/20 13:47:20 deraadt Exp $ */ /* * Copyright (c) 2004 Michael Shalayeff @@ -460,7 +460,7 @@ _dl_bind(elf_object_t *object, int reloff) _dl_thread_bind_lock(0, &savedmask); /* mprotect the actual modified region, not the whole plt */ _dl_mprotect((void*)addr, sizeof (Elf_Addr) * 2, - PROT_READ|PROT_WRITE); + PROT_READ|PROT_WRITE|PROT_EXEC); } addr[0] = value; |