summaryrefslogtreecommitdiff
path: root/plugins/dalvik
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2017-11-26 20:39:28 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2017-11-26 20:39:28 (GMT)
commit1252efcd18a845a7c2641354838c26ece3d6d873 (patch)
tree13d248454e99b76dd4c61fbd41c8c138ebb61eb7 /plugins/dalvik
parent84efc00d07f9574c3867f96a3a7333b0f9d154e6 (diff)
Increased the reference counter for provided operands and updated code.
Diffstat (limited to 'plugins/dalvik')
-rw-r--r--plugins/dalvik/fetch.c2
-rw-r--r--plugins/dalvik/link.c2
-rw-r--r--plugins/dalvik/operand.c2
3 files changed, 6 insertions, 0 deletions
diff --git a/plugins/dalvik/fetch.c b/plugins/dalvik/fetch.c
index aa17a9f..1ac6fa2 100644
--- a/plugins/dalvik/fetch.c
+++ b/plugins/dalvik/fetch.c
@@ -56,6 +56,8 @@ void help_fetching_with_dalvik_instruction(GArchInstruction *instr, GArchProcess
status = g_imm_operand_to_virt_t(G_IMM_OPERAND(op), &target);
assert(status);
+ g_object_unref(G_OBJECT(op));
+
if (status)
g_proc_context_push_drop_point(G_PROC_CONTEXT(context), DPL_OTHER, target);
diff --git a/plugins/dalvik/link.c b/plugins/dalvik/link.c
index 5fa0c26..502b7a3 100644
--- a/plugins/dalvik/link.c
+++ b/plugins/dalvik/link.c
@@ -127,6 +127,8 @@ void handle_dalvik_packed_switch_links(GArchInstruction *instr, GArchProcessor *
}
}
+ g_object_unref(G_OBJECT(op));
+
if (defined)
{
switch_ins = g_arch_processor_find_instr_by_address(proc, &addr);
diff --git a/plugins/dalvik/operand.c b/plugins/dalvik/operand.c
index e37a0bb..12fcca5 100644
--- a/plugins/dalvik/operand.c
+++ b/plugins/dalvik/operand.c
@@ -749,4 +749,6 @@ void dalvik_mark_first_operand_as_written(GArchInstruction *instr)
g_dalvik_register_operand_mark_as_written(G_DALVIK_REGISTER_OPERAND(operand));
+ g_object_unref(G_OBJECT(operand));
+
}