diff --git a/CHANGELOG.md b/CHANGELOG.md index 33f2e85aa..dd6aa31f6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ All notable changes to this project will be documented in this file. - Hex view for unknown tags was not scrollable - [#2269] Nullpointer on importing (ImportAssets) a character that does not exists - Asking more than once for the same imported (ImportAssets) URL +- ABC Explorer problems when index out of bounds (Usually in obfuscated code) ## [21.0.1] - 2024-08-08 ### Added diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/usages/simple/ABCSimpleUsageDetector.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/usages/simple/ABCSimpleUsageDetector.java index 54c00077f..d118e1295 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/usages/simple/ABCSimpleUsageDetector.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/usages/simple/ABCSimpleUsageDetector.java @@ -38,6 +38,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Stack; +import java.util.logging.Level; +import java.util.logging.Logger; /** * Simple usage detector for ABC. @@ -518,7 +520,10 @@ public class ABCSimpleUsageDetector { * @return True if it is new */ private boolean handleUsage(ItemKind kind, int index, String usageDescription) { - + if (index < 0 || index > usages.get(kind).size() - 1) { + Logger.getLogger(ABCSimpleUsageDetector.class.getName()).log(Level.WARNING, "{0} with index {1} not found for usage {2}", new Object[]{kind, index, usageDescription}); + return false; + } List kindList = usages.get(kind).get(index); kindList.add(usageDescription);