From: Thierry Fauck <[email protected]>

        modified:   sysdeps/linux-gnu/ppc/plt.c

Signed-off-by: Thierry Fauck <[email protected]>

        modified:   sysdeps/linux-gnu/ppc/plt.c
---
 sysdeps/linux-gnu/ppc/plt.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/sysdeps/linux-gnu/ppc/plt.c b/sysdeps/linux-gnu/ppc/plt.c
index 2238e4e..8ddeae7 100644
--- a/sysdeps/linux-gnu/ppc/plt.c
+++ b/sysdeps/linux-gnu/ppc/plt.c
@@ -325,7 +325,10 @@ arch_translate_address(struct ltelf *lte,
                       arch_addr_t addr, arch_addr_t *ret)
 {
        if (lte->ehdr.e_machine == EM_PPC64
-           && !lte->arch.elfv2_abi) {
+           && !lte->arch.elfv2_abi
+           && ((arch_addr_t)(uintptr_t)lte->arch.opd_base <= addr
+               && addr < (arch_addr_t)(uintptr_t)
+                       (lte->arch.opd_base+lte->arch.opd_size))) {
                /* XXX The double cast should be removed when
                 * arch_addr_t becomes integral type.  */
                GElf_Xword offset
-- 
1.8.3.1


_______________________________________________
Ltrace-devel mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/ltrace-devel

Reply via email to