summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--src/arch/dalvik/pseudo/switch.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 3a5e6e8..304682b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+16-10-25 Cyrille Bagard <nocbos@gmail.com>
+
+ * src/arch/dalvik/pseudo/switch.c:
+ Fix a mistake when decoding sparse-switch and packed-switch payloads.
+
16-10-23 Cyrille Bagard <nocbos@gmail.com>
* plugins/androhelpers/switch.c:
diff --git a/src/arch/dalvik/pseudo/switch.c b/src/arch/dalvik/pseudo/switch.c
index 70afb3e..45a5281 100644
--- a/src/arch/dalvik/pseudo/switch.c
+++ b/src/arch/dalvik/pseudo/switch.c
@@ -193,7 +193,7 @@ GArchInstruction *g_dalvik_switch_instr_new(uint16_t ident, GDalvikContext *ctx,
if (!g_dalvik_switch_decode_data(result, content, pos))
goto gdsin_bad;
- if (ident != DPO_PACKED_SWITCH)
+ if (ident == DPO_PACKED_SWITCH)
consumed = (1 + result->switch_size) * sizeof(int32_t);
else
consumed = (2 * result->switch_size) * sizeof(int32_t);