From bb7acb3a5b30ed5c206d35309e38b65321b68d7e Mon Sep 17 00:00:00 2001 From: Arnaud Fiorini Date: Mon, 1 Jun 2026 09:46:16 -0400 Subject: [PATCH] ctf: remove sequence bit length calculation as it cannot be known Signed-off-by: Arnaud Fiorini --- .../ctf/core/event/types/SequenceDeclaration.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) 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);