From 22d792e328821228e9ab0c629ffa5335551de5c6 Mon Sep 17 00:00:00 2001 From: Connor Tumbleson Date: Mon, 7 Aug 2023 19:52:34 -0400 Subject: [PATCH] fix: support encode styled string if length larger than offset (#3254) --- .../main/java/brut/androlib/res/decoder/StyledString.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/StyledString.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/StyledString.java index 057d1d2e..fc9affeb 100644 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/StyledString.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/StyledString.java @@ -157,8 +157,11 @@ public class StyledString { } // write encoded raw text preceding the closing tag - if (spanEnd > lastOffset) { + if (spanEnd > lastOffset && text.length() >= spanEnd) { xmlValue.append(ResXmlEncoders.escapeXmlChars(text.substring(lastOffset, spanEnd))); + } else if (text.length() >= lastOffset && text.length() < spanEnd) { + LOGGER.warning("Span (" + name + ") exceeds text length " + text.length()); + xmlValue.append(ResXmlEncoders.escapeXmlChars(text.substring(lastOffset))); } lastOffset = spanEnd;