Module Name: src Committed By: matt Date: Thu Apr 25 13:14:41 UTC 2013
Modified Files: src/libexec/ld.elf_so: headers.c Log Message: Don't assume that PT_PHDR is always first. To generate a diff of this commit: cvs rdiff -u -r1.44 -r1.45 src/libexec/ld.elf_so/headers.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/libexec/ld.elf_so/headers.c diff -u src/libexec/ld.elf_so/headers.c:1.44 src/libexec/ld.elf_so/headers.c:1.45 --- src/libexec/ld.elf_so/headers.c:1.44 Wed Apr 24 22:37:20 2013 +++ src/libexec/ld.elf_so/headers.c Thu Apr 25 13:14:41 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: headers.c,v 1.44 2013/04/24 22:37:20 matt Exp $ */ +/* $NetBSD: headers.c,v 1.45 2013/04/25 13:14:41 matt Exp $ */ /* * Copyright 1996 John D. Polstra. @@ -40,7 +40,7 @@ #include <sys/cdefs.h> #ifndef lint -__RCSID("$NetBSD: headers.c,v 1.44 2013/04/24 22:37:20 matt Exp $"); +__RCSID("$NetBSD: headers.c,v 1.45 2013/04/25 13:14:41 matt Exp $"); #endif /* not lint */ #include <err.h> @@ -373,7 +373,7 @@ _rtld_digest_phdr(const Elf_Phdr *phdr, obj->phdr = (void *)(uintptr_t)phdr->p_vaddr; obj->phsize = phdr->p_memsz; - obj->relocbase = (caddr_t)((uintptr_t)phdr - (uintptr_t)ph->p_vaddr); + obj->relocbase = (caddr_t)((uintptr_t)ph - (uintptr_t)ph->p_vaddr); dbg(("headers: phdr %p phsize %zu relocbase %lx", obj->phdr, obj->phsize, (long)obj->relocbase)); break;