Check phdr for Referencing phdr 17/79217/1 accepted/tizen/common/20160711.170040 accepted/tizen/ivi/20160711.031048 accepted/tizen/mobile/20160711.030623 accepted/tizen/tv/20160711.030542 accepted/tizen/wearable/20160711.030546 submit/tizen/20160711.000426
authorKunhoon Baik <knhoon.baik@samsung.com>
Sat, 9 Jul 2016 02:30:19 +0000 (11:30 +0900)
committerKunhoon Baik <knhoon.baik@samsung.com>
Sat, 9 Jul 2016 02:30:19 +0000 (11:30 +0900)
Change-Id: I63f07a7506d556de3d4c576fd141a007a34ceb0d

src/crash-stack/crash-stack-arm.c

index 4edf54f24478460ad23ed6d6c60552e09bde6757..e1d69048caabd93042bb3fa81588cabacb6be7b9 100644 (file)
@@ -75,13 +75,19 @@ Boolean readT (Int32 a, void *v, size_t size)
        {
                // get data from segment
                GElf_Phdr mem;
-               GElf_Phdr *phdr = gelf_getphdr (g_core, segment, &mem);
-               Dwarf_Addr offset_in_segment = a - phdr->p_vaddr;
-               if (offset_in_segment < phdr->p_filesz)
+               GElf_Phdr *phdr;
+               Dwarf_Addr offset_in_segment;
+
+               phdr = gelf_getphdr (g_core, segment, &mem);
+               if (phdr != NULL)
                {
-                       Dwarf_Addr offset_in_file = phdr->p_offset + offset_in_segment;
+                       offset_in_segment = a - phdr->p_vaddr;
+                       if (offset_in_segment < phdr->p_filesz)
+                       {
+                               Dwarf_Addr offset_in_file = phdr->p_offset + offset_in_segment;
 
-                       data = elf_getdata_rawchunk (g_core, offset_in_file, size, ELF_T_BYTE);
+                               data = elf_getdata_rawchunk (g_core, offset_in_file, size, ELF_T_BYTE);
+                       }
                }
        }