summaryrefslogtreecommitdiff
path: root/plugins/readelf
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2018-09-06 20:45:36 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2018-09-06 20:45:36 (GMT)
commit9aaaa651d924eb30e46f26690aea007b7d868e35 (patch)
tree846d8f5d27bc7c289a6b0241f1ad3fbe2510f1c6 /plugins/readelf
parent9dac560b09bfea058e0286b1a5cd25c37290af39 (diff)
Fixed possible UAFs when adding symbols.
Diffstat (limited to 'plugins/readelf')
-rw-r--r--plugins/readelf/strtab.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/plugins/readelf/strtab.c b/plugins/readelf/strtab.c
index 3cbe353..7645dec 100644
--- a/plugins/readelf/strtab.c
+++ b/plugins/readelf/strtab.c
@@ -113,6 +113,9 @@ static void parse_elf_string_table(GElfFormat *format, GPreloadInfo *info, const
irange = g_arch_instruction_get_range(instr);
symbol = g_string_symbol_new_read_only(base, irange, SET_GUESS);
+
+ g_object_ref(G_OBJECT(symbol));
+
g_binary_format_add_symbol(base, symbol);
/* Jointure avec la chaîne précédente ? */
@@ -120,6 +123,8 @@ static void parse_elf_string_table(GElfFormat *format, GPreloadInfo *info, const
if (cut)
g_string_symbol_build_label(G_STR_SYMBOL(symbol), base);
+ g_object_unref(G_OBJECT(symbol));
+
}
/* Conclusion */