summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2006-08-06 21:45:47 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2006-08-06 21:45:47 +0000
commit4a050dea44d47e8527e08aa151fbd5ad94cb12dc (patch)
tree05b1b09bbb7744976d61119045811abd6550b895
parent86b0e9841c734d03c0061a08c6defcd360133f65 (diff)
Do not take shortcuts when the PLT size is 0; makes emacs work again on alpha.
ok drahn@
-rw-r--r--libexec/ld.so/alpha/rtld_machine.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libexec/ld.so/alpha/rtld_machine.c b/libexec/ld.so/alpha/rtld_machine.c
index 14246353390..f4fe41643cd 100644
--- a/libexec/ld.so/alpha/rtld_machine.c
+++ b/libexec/ld.so/alpha/rtld_machine.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rtld_machine.c,v 1.36 2006/08/06 16:38:10 drahn Exp $ */
+/* $OpenBSD: rtld_machine.c,v 1.37 2006/08/06 21:45:46 kettenis Exp $ */
/*
* Copyright (c) 1999 Dale Rahn
@@ -177,7 +177,7 @@ _dl_bind(elf_object_t *object, int reloff)
rela = (Elf_RelA *)(object->Dyn.info[DT_JMPREL] + reloff);
addr = (Elf_Addr *)(object->load_offs + rela->r_offset);
- if (!(*addr >= object->plt_start &&
+ if (object->plt_size != 0 && !(*addr >= object->plt_start &&
*addr < (object->plt_start + object->plt_size ))) {
/* something is broken, relocation has already occurred */
#if 0