about summary refs log tree commit diff stats
path: root/src/elfs
diff options
context:
space:
mode:
Diffstat (limited to 'src/elfs')
-rw-r--r--src/elfs/elfdwarf_private.c4
-rwxr-xr-xsrc/elfs/elfloader.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/src/elfs/elfdwarf_private.c b/src/elfs/elfdwarf_private.c
index bae2b4ea..84ee71dd 100644
--- a/src/elfs/elfdwarf_private.c
+++ b/src/elfs/elfdwarf_private.c
@@ -108,6 +108,10 @@ uintptr_t get_parent_registers(dwarf_unwind_t *unwind, const elfheader_t *ehdr,
         *success = 0;
         return 0;
     }
+    if(!IsAddressInElfSpace(ehdr, ehdr->ehframehdr)) {
+        *success = 0;
+        return 0;
+    }
     unsigned char ehfh_version = *(unsigned char*)ehdr->ehframehdr;
     if (ehfh_version != 1) {
         *success = 0;
diff --git a/src/elfs/elfloader.c b/src/elfs/elfloader.c
index 338a57ca..3bbd2206 100755
--- a/src/elfs/elfloader.c
+++ b/src/elfs/elfloader.c
@@ -1258,7 +1258,7 @@ uint32_t GetBaseSize(elfheader_t* h)
     return h->memsz;
 }
 
-int IsAddressInElfSpace(elfheader_t* h, uintptr_t addr)
+int IsAddressInElfSpace(const elfheader_t* h, uintptr_t addr)
 {
     if(!h)
         return 0;