[libunwind] r299591 - AddressSpace: fix DWARF based unwinding handling on Android
Saleem Abdulrasool via cfe-commits
cfe-commits at lists.llvm.org
Wed Apr 5 14:29:38 PDT 2017
Author: compnerd
Date: Wed Apr 5 16:29:38 2017
New Revision: 299591
URL: http://llvm.org/viewvc/llvm-project?rev=299591&view=rev
Log:
AddressSpace: fix DWARF based unwinding handling on Android
It is possible that there are no program headers in the module. Do not
attempt to dereference nullptr as a program header.
Modified:
libunwind/trunk/src/AddressSpace.hpp
Modified: libunwind/trunk/src/AddressSpace.hpp
URL: http://llvm.org/viewvc/llvm-project/libunwind/trunk/src/AddressSpace.hpp?rev=299591&r1=299590&r2=299591&view=diff
==============================================================================
--- libunwind/trunk/src/AddressSpace.hpp (original)
+++ libunwind/trunk/src/AddressSpace.hpp Wed Apr 5 16:29:38 2017
@@ -394,8 +394,11 @@ inline bool LocalAddressSpace::findUnwin
size_t object_length;
#if defined(__ANDROID__)
Elf_Addr image_base =
- reinterpret_cast<Elf_Addr>(pinfo->dlpi_phdr) -
- reinterpret_cast<const Elf_Phdr *>(pinfo->dlpi_phdr)->p_offset;
+ pinfo->dlpi_phnum
+ ? reinterpret_cast<Elf_Addr>(pinfo->dlpi_phdr) -
+ reinterpret_cast<const Elf_Phdr *>(pinfo->dlpi_phdr)
+ ->p_offset
+ : 0;
#endif
for (Elf_Half i = 0; i < pinfo->dlpi_phnum; i++) {
More information about the cfe-commits
mailing list