From: Kunhoon Baik Date: Sat, 9 Jul 2016 02:30:19 +0000 (+0900) Subject: Check phdr for Referencing phdr X-Git-Tag: submit/tizen/20160711.000426^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8abe6f64a90d33e2289762e4001f38a58791e46e;p=platform%2Fcore%2Fsystem%2Fcrash-worker.git Check phdr for Referencing phdr Change-Id: I63f07a7506d556de3d4c576fd141a007a34ceb0d --- diff --git a/src/crash-stack/crash-stack-arm.c b/src/crash-stack/crash-stack-arm.c index 4edf54f2..e1d69048 100644 --- a/src/crash-stack/crash-stack-arm.c +++ b/src/crash-stack/crash-stack-arm.c @@ -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); + } } }