From dbb5a81c38ccbdefafc2abe3bd1e266a7fc42bc2 Mon Sep 17 00:00:00 2001 From: Cyrille Bagard Date: Sun, 27 Aug 2017 20:14:19 +0200 Subject: Took into account that some instruction creations may fail. --- ChangeLog | 9 +++++++++ plugins/readdex/ids.c | 19 +++++++++++-------- plugins/readelf/strtab.c | 2 ++ src/format/elf/strings.c | 2 ++ 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1eb2cd5..0605206 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,14 @@ 17-08-27 Cyrille Bagard + * plugins/readdex/ids.c: + Take into account that some instruction creations may fail. + + * plugins/readelf/strtab.c: + * src/format/elf/strings.c: + Assert some functions do not fail. + +17-08-27 Cyrille Bagard + * src/gui/dialogs/about.c: Replace a deprecated function in the About box. diff --git a/plugins/readdex/ids.c b/plugins/readdex/ids.c index 518e9ad..88a60b0 100644 --- a/plugins/readdex/ids.c +++ b/plugins/readdex/ids.c @@ -24,7 +24,6 @@ #include "ids.h" -#include #include #include @@ -330,16 +329,20 @@ bool annotate_dex_string_ids(const GDexFormat *format, GPreloadInfo *info, GtkSt { instr = g_raw_instruction_new_array(content, MDS_8_BITS, length, &item_pos, endian); - g_raw_instruction_mark_as_string(G_RAW_INSTRUCTION(instr), true); + if (instr != NULL) + { + g_raw_instruction_mark_as_string(G_RAW_INSTRUCTION(instr), true); - inserted = g_preload_info_add_instruction(info, instr); + inserted = g_preload_info_add_instruction(info, instr); - if (inserted) - { - range = g_arch_instruction_get_range(instr); + if (inserted) + { + range = g_arch_instruction_get_range(instr); + + symbol = g_binary_symbol_new(range, STP_RO_STRING); + g_binary_format_add_symbol(bformat, symbol); - symbol = g_binary_symbol_new(range, STP_RO_STRING); - g_binary_format_add_symbol(bformat, symbol); + } } diff --git a/plugins/readelf/strtab.c b/plugins/readelf/strtab.c index 7cdb4c9..dc022cf 100644 --- a/plugins/readelf/strtab.c +++ b/plugins/readelf/strtab.c @@ -24,6 +24,7 @@ #include "strtab.h" +#include #include @@ -101,6 +102,7 @@ static void parse_elf_string_table(GElfFormat *format, GPreloadInfo *info, const advance_vmpa(&pos, i); instr = g_raw_instruction_new_array(content, MDS_8_BITS, end - i, &pos, MDS_UNDEFINED); + assert(instr != NULL); g_raw_instruction_mark_as_string(G_RAW_INSTRUCTION(instr), true); diff --git a/src/format/elf/strings.c b/src/format/elf/strings.c index e885632..2af08b2 100644 --- a/src/format/elf/strings.c +++ b/src/format/elf/strings.c @@ -24,6 +24,7 @@ #include "strings.h" +#include #include #include #include @@ -201,6 +202,7 @@ static bool parse_elf_string_data(GElfFormat *format, phys_t start, phys_t size, init_vmpa(&pos, start + i, address + i); instr = g_raw_instruction_new_array(content, MDS_8_BITS, end - i, &pos, format->endian); + assert(instr != NULL); g_raw_instruction_mark_as_string(G_RAW_INSTRUCTION(instr), true); -- cgit v0.11.2-87-g4458