aboutsummaryrefslogtreecommitdiff
path: root/libexec
diff options
context:
space:
mode:
authorThomas Moestl <tmm@FreeBSD.org>2002-09-14 12:14:24 +0000
committerThomas Moestl <tmm@FreeBSD.org>2002-09-14 12:14:24 +0000
commita4823075e583c15cd568402ce5b8cc1dbf8b044b (patch)
tree790f773b5ef64c358cec44c772b6b19342c33fa9 /libexec
parent06be2aaa8320ba839a837d20e35f35c3efdf7587 (diff)
downloadsrc-a4823075e583c15cd568402ce5b8cc1dbf8b044b.tar.gz
src-a4823075e583c15cd568402ce5b8cc1dbf8b044b.zip
Return an error if a symbol is not found in reloc_jmpslots() instead of
crashing.
Notes
Notes: svn path=/head/; revision=103315
Diffstat (limited to 'libexec')
-rw-r--r--libexec/rtld-elf/sparc64/reloc.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/libexec/rtld-elf/sparc64/reloc.c b/libexec/rtld-elf/sparc64/reloc.c
index b26b119bb7d3..7a43ce401d11 100644
--- a/libexec/rtld-elf/sparc64/reloc.c
+++ b/libexec/rtld-elf/sparc64/reloc.c
@@ -455,6 +455,8 @@ reloc_jmpslots(Obj_Entry *obj)
where = (Elf_Addr *)(obj->relocbase + rela->r_offset);
def = find_symdef(ELF_R_SYM(rela->r_info), obj, &defobj,
true, NULL);
+ if (def == NULL)
+ return -1;
target = (Elf_Addr)(defobj->relocbase + def->st_value);
reloc_jmpslot(where, target, defobj);
}