From b0f017608bb7958298fce527dd39da789d00ba22 Mon Sep 17 00:00:00 2001 From: zayeem shaikh Date: Thu, 23 Jul 2026 14:06:12 +0530 Subject: [PATCH] fix off-by-one token range clamp in getTokensSet --- runtime/C/src/antlr3tokenstream.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/runtime/C/src/antlr3tokenstream.c b/runtime/C/src/antlr3tokenstream.c index ec06f1575..d74f77ee2 100644 --- a/runtime/C/src/antlr3tokenstream.c +++ b/runtime/C/src/antlr3tokenstream.c @@ -728,9 +728,9 @@ getTokensSet (pANTLR3_COMMON_TOKEN_STREAM tokenStream, ANTLR3_UINT32 start, ANTL { fillBuffer(tokenStream); } - if (stop > tokenStream->tstream->istream->size(tokenStream->tstream->istream)) + if (stop >= tokenStream->tstream->istream->size(tokenStream->tstream->istream)) { - stop = tokenStream->tstream->istream->size(tokenStream->tstream->istream); + stop = tokenStream->tstream->istream->size(tokenStream->tstream->istream) - 1; } if (start > stop) { @@ -748,7 +748,7 @@ getTokensSet (pANTLR3_COMMON_TOKEN_STREAM tokenStream, ANTLR3_UINT32 start, ANTL tok = tokenStream->tstream->get(tokenStream->tstream, i); if ( types == NULL - || types->isMember(types, tok->getType(tok) == ANTLR3_TRUE) + || types->isMember(types, tok->getType(tok)) == ANTLR3_TRUE ) { filteredList->put(filteredList, n++, (void *)tok, NULL);