diff options
Diffstat (limited to 'plugins/elf/format.c')
-rw-r--r-- | plugins/elf/format.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/plugins/elf/format.c b/plugins/elf/format.c index f2f7609..c5f5530 100644 --- a/plugins/elf/format.c +++ b/plugins/elf/format.c @@ -333,7 +333,7 @@ static bool g_elf_format_analyze(GElfFormat *format, wgroup_id_t gid, GtkStatusS exe = G_EXE_FORMAT(format); if (!read_elf_header(format, &format->header, &format->is_32b, &format->endian)) - goto gefa_error; + goto error; /* Vérification des tailles d'entrée de table */ @@ -377,7 +377,7 @@ static bool g_elf_format_analyze(GElfFormat *format, wgroup_id_t gid, GtkStatusS default: log_variadic_message(LMT_ERROR, "Architecture not supported for ELF binaries"); - goto gefa_error; + goto error; break; } @@ -398,17 +398,17 @@ static bool g_elf_format_analyze(GElfFormat *format, wgroup_id_t gid, GtkStatusS preload_binary_format(PGA_FORMAT_PRELOAD, base, base->info, status); if (!load_elf_symbols(format, gid, status)) - goto gefa_error; + goto error; if (!find_all_elf_strings(format, gid, status)) - goto gefa_error; + goto error; if (!g_executable_format_complete_loading(exe, gid, status)) - goto gefa_error; + goto error; result = true; - gefa_error: + error: return result; @@ -450,6 +450,14 @@ static SourceEndian g_elf_format_get_endianness(const GElfFormat *format) static void g_elf_format_complete_analysis(GElfFormat *format, wgroup_id_t gid, GtkStatusStack *status) { + /** + * C'est la phase de désassemblage qui produit les symboles externes appelés + * au sein du code. + * + * Le renommage de ces symboles doit donc intervenir une fois les symboles + * en place, donc après les opérations de désassemblage terminées. + */ + refresh_elf_relocations(format, gid, status); } |