diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | src/arch/dalvik/pseudo/switch.c | 2 |
2 files changed, 6 insertions, 1 deletions
@@ -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); |