Use zero offset when getting bias from memory.
am: c3290dfdd3
* commit 'c3290dfdd3ef01a52a544b0ee7e37663befb6a3b':
Use zero offset when getting bias from memory.
Change-Id: Ie19a6439faa0de496ed29d23e1f6a76e42282ede
diff --git a/src/elfxx.c b/src/elfxx.c
index 7fda0b7..057a3ba 100644
--- a/src/elfxx.c
+++ b/src/elfxx.c
@@ -635,7 +635,11 @@
Elf_W(Phdr) phdr;
GET_PHDR_FIELD(ei, offset, &phdr, p_type);
GET_PHDR_FIELD(ei, offset, &phdr, p_offset);
- if (phdr.p_type == PT_LOAD && phdr.p_offset == mapoff) {
+ // Always use zero as the map offset for in memory maps.
+ // The dlopen of a shared library from an APK will result in a
+ // non-zero map offset which would mean we would never find the
+ // correct program header using the passed in map offset.
+ if (phdr.p_type == PT_LOAD && phdr.p_offset == 0) {
GET_PHDR_FIELD(ei, offset, &phdr, p_vaddr);
*load_base = phdr.p_vaddr;
return true;