diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/omf/OmfIteratedData.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/omf/OmfIteratedData.java index faf9f03c49..9d079a1a4e 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/omf/OmfIteratedData.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/omf/OmfIteratedData.java @@ -148,7 +148,11 @@ public class OmfIteratedData extends OmfData { length += block.getLength(); } } - return length * repeatCount; + long total = (long) length * (long) repeatCount; + if (total < 0 || total > OmfIteratedData.MAX_ITERATED_FILL) { + throw new IllegalArgumentException("Iterated block length out of range: " + total); + } + return (int) total; } /**