summaryrefslogtreecommitdiff
path: root/libexec/ld.so
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2012-06-20 13:47:21 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2012-06-20 13:47:21 +0000
commitb6a036d16968bdc07e9455937f674778d6f90e05 (patch)
tree0ead2357bd8087bc695663cdd0ea295eb958788f /libexec/ld.so
parent86684b2565900870ab39d72f079cea6b09c05332 (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/ld.so')
-rw-r--r--libexec/ld.so/hppa/rtld_machine.c4
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;