diff options
author | Mark Kettenis <kettenis@cvs.openbsd.org> | 2006-08-06 21:45:47 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@cvs.openbsd.org> | 2006-08-06 21:45:47 +0000 |
commit | 4a050dea44d47e8527e08aa151fbd5ad94cb12dc (patch) | |
tree | 05b1b09bbb7744976d61119045811abd6550b895 | |
parent | 86b0e9841c734d03c0061a08c6defcd360133f65 (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.c | 4 |
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 |