summaryrefslogtreecommitdiff
path: root/plugins/elf/symbols.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/elf/symbols.c')
-rw-r--r--plugins/elf/symbols.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/plugins/elf/symbols.c b/plugins/elf/symbols.c
index b6f05f6..5ddc99c 100644
--- a/plugins/elf/symbols.c
+++ b/plugins/elf/symbols.c
@@ -195,7 +195,10 @@ static void register_elf_entry_point(GElfFormat *format, virt_t vaddr, phys_t le
/* Comptabilisation en tant que symbole */
if (g_binary_format_find_symbol_at(G_BIN_FORMAT(format), &addr, &symbol))
+ {
+ g_object_unref(G_OBJECT(symbol));
g_object_unref(G_OBJECT(routine));
+ }
else
{
@@ -552,11 +555,13 @@ static bool do_elf_symbol_loading(GElfLoading *loading, GElfFormat *format, bool
{
g_binary_symbol_set_status(symbol, status);
+ /*
if (new != NULL)
{
g_object_ref(G_OBJECT(symbol));
*new = symbol;
}
+ */
g_binary_format_add_symbol(base, symbol);
@@ -749,6 +754,8 @@ static bool do_elf_global_symbol_loading(GElfLoading *loading, GElfFormat *forma
result = do_elf_symbol_loading(loading, format, false, iter, &symbol);
+ //g_clear_object(&symbol);
+
return result;
}
@@ -1048,7 +1055,7 @@ static bool load_elf_relocations(GElfFormat *format, const elf_phdr *dynamic, el
{
result &= g_elf_loading_get_status(loadings[i]);
- g_object_ref(G_OBJECT(loadings[i]));
+ g_object_unref(G_OBJECT(loadings[i]));
}