summaryrefslogtreecommitdiff
path: root/plugins/elf/format.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/elf/format.c')
-rw-r--r--plugins/elf/format.c20
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);
}