diff --git a/ctf/org.eclipse.tracecompass.ctf.core/src/org/eclipse/tracecompass/internal/ctf/core/event/types/SequenceDeclaration.java b/ctf/org.eclipse.tracecompass.ctf.core/src/org/eclipse/tracecompass/internal/ctf/core/event/types/SequenceDeclaration.java index 343b6cd70a..ad372402fe 100644 --- a/ctf/org.eclipse.tracecompass.ctf.core/src/org/eclipse/tracecompass/internal/ctf/core/event/types/SequenceDeclaration.java +++ b/ctf/org.eclipse.tracecompass.ctf.core/src/org/eclipse/tracecompass/internal/ctf/core/event/types/SequenceDeclaration.java @@ -116,11 +116,15 @@ public AbstractArrayDefinition createDefinition( } long length = lengthDefinition.getValue(); - long maxBits = length * fElemType.getMaximumSize(); - if ((length > Integer.MAX_VALUE) || (maxBits > Integer.MAX_VALUE) || (!input.canRead((int) maxBits))) { + if (length > Integer.MAX_VALUE ) { throw new CTFException("Sequence length too long " + length); //$NON-NLS-1$ } - + if (fElemType.getMaximumSize() != Integer.MAX_VALUE) { + long maxBits = length * fElemType.getMaximumSize(); + if (maxBits > Integer.MAX_VALUE || !input.canRead((int) maxBits)) { + throw new CTFException("Sequence length too long " + length); //$NON-NLS-1$ + } + } // Explicitly align to support 0-length sequences alignRead(input);