From 8e8a2faa1073e6d7fceabe99d223a9553a1d7506 Mon Sep 17 00:00:00 2001 From: Skylot Date: Sun, 14 Jul 2019 17:06:19 +0300 Subject: [PATCH] fix(res): skip string if parsing failed (#712) --- .../src/main/java/jadx/core/xmlgen/CommonBinaryParser.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/jadx-core/src/main/java/jadx/core/xmlgen/CommonBinaryParser.java b/jadx-core/src/main/java/jadx/core/xmlgen/CommonBinaryParser.java index e52657ed1..e7116714e 100644 --- a/jadx-core/src/main/java/jadx/core/xmlgen/CommonBinaryParser.java +++ b/jadx-core/src/main/java/jadx/core/xmlgen/CommonBinaryParser.java @@ -11,7 +11,6 @@ public class CommonBinaryParser extends ParserConstants { return parseStringPoolNoType(); } - @SuppressWarnings("unused") protected String[] parseStringPoolNoType() throws IOException { long start = is.getPos() - 2; is.checkInt16(0x001c, "String pool header size not 0x001c"); @@ -56,6 +55,9 @@ public class CommonBinaryParser extends ParserConstants { } private static String extractString8(byte[] strArray, int offset) { + if (offset >= strArray.length) { + return "STRING_DECODE_ERROR"; + } int start = offset + skipStrLen8(strArray, offset); int len = strArray[start++]; if (len == 0) {