summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDale Rahn <drahn@cvs.openbsd.org>2003-01-30 06:40:39 +0000
committerDale Rahn <drahn@cvs.openbsd.org>2003-01-30 06:40:39 +0000
commit27a6cc9780f7c7537236a7a26443a1c89baad775 (patch)
tree5fab1ee0150b67b2cde6088f4f2d4dca27bba175
parent9b3cf2841c8e0967cee5063bc5a1820ff682b906 (diff)
Only flush the got address, if there is one. DOH.
-rw-r--r--libexec/ld.so/powerpc/rtld_machine.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libexec/ld.so/powerpc/rtld_machine.c b/libexec/ld.so/powerpc/rtld_machine.c
index 8fc17624352..b1040ac86a6 100644
--- a/libexec/ld.so/powerpc/rtld_machine.c
+++ b/libexec/ld.so/powerpc/rtld_machine.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rtld_machine.c,v 1.20 2003/01/24 00:43:29 drahn Exp $ */
+/* $OpenBSD: rtld_machine.c,v 1.21 2003/01/30 06:40:38 drahn Exp $ */
/*
* Copyright (c) 1999 Dale Rahn
@@ -515,10 +515,11 @@ _dl_md_reloc_got(elf_object_t *object, int lazy)
_dl_dcbf(&r_addr[0]);
_dl_dcbf(&r_addr[2]);
}
- if (object->got_addr != NULL && object->got_size != 0)
+ if (object->got_addr != NULL && object->got_size != 0) {
_dl_mprotect((void*)object->got_addr, object->got_size,
PROT_READ|PROT_EXEC); /* only PPC is PROT_EXE */
_dl_syncicache((void*)object->got_addr, 4);
+ }
if (object->plt_addr != NULL && object->plt_size != 0)
_dl_mprotect((void*)object->plt_addr, object->plt_size,
PROT_READ|PROT_EXEC);