From d61ef7352b0026d9eeaf457dbfbb2e3fd8401e92 Mon Sep 17 00:00:00 2001 From: Carlos O'Donell Date: Thu, 29 Sep 2016 21:54:31 -0400 Subject: Bug 20292 - Simplify and test _dl_addr_inside_object The function _dl_addr_inside_object is simplified by removing the conditional 'reladdr - l->l_phdr[n].p_vaddr >= 0' which is always true. The function is refactored into it's own object file and a unit test added to verify the correct behaviour of the function. --- elf/dl-addr.c | 16 ---------------- 1 file changed, 16 deletions(-) (limited to 'elf/dl-addr.c') diff --git a/elf/dl-addr.c b/elf/dl-addr.c index 1b16a58..045e746 100644 --- a/elf/dl-addr.c +++ b/elf/dl-addr.c @@ -144,19 +144,3 @@ _dl_addr (const void *address, Dl_info *info, return result; } libc_hidden_def (_dl_addr) - -/* Return non-zero if ADDR lies within one of L's segments. */ -int -internal_function -_dl_addr_inside_object (struct link_map *l, const ElfW(Addr) addr) -{ - int n = l->l_phnum; - const ElfW(Addr) reladdr = addr - l->l_addr; - - while (--n >= 0) - if (l->l_phdr[n].p_type == PT_LOAD - && reladdr - l->l_phdr[n].p_vaddr >= 0 - && reladdr - l->l_phdr[n].p_vaddr < l->l_phdr[n].p_memsz) - return 1; - return 0; -} -- cgit v1.1