From db03b534365ccafdfb52c28b35a515b18fa8eaf5 Mon Sep 17 00:00:00 2001 From: zayeem shaikh Date: Tue, 18 Aug 2026 16:13:55 +0530 Subject: [PATCH] scale UTF32 LA bounds check to element size --- runtime/C/src/antlr3inputstream.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/runtime/C/src/antlr3inputstream.c b/runtime/C/src/antlr3inputstream.c index dd9f56e37..7cf7a088a 100644 --- a/runtime/C/src/antlr3inputstream.c +++ b/runtime/C/src/antlr3inputstream.c @@ -1677,7 +1677,7 @@ antlr3UTF32LA(pANTLR3_INT_STREAM is, ANTLR3_INT32 la) input = ((pANTLR3_INPUT_STREAM) (is->super)); - if (( ((pANTLR3_UINT8)input->nextChar) + la - 1) >= (((pANTLR3_UINT8)input->data) + input->sizeBuf)) + if (( (pANTLR3_UINT8)((pANTLR3_UINT32)input->nextChar + la - 1) + sizeof(ANTLR3_UINT32)) > (((pANTLR3_UINT8)input->data) + input->sizeBuf)) { return ANTLR3_CHARSTREAM_EOF; } @@ -1701,7 +1701,7 @@ antlr3UTF32LALE(pANTLR3_INT_STREAM is, ANTLR3_INT32 la) input = ((pANTLR3_INPUT_STREAM) (is->super)); - if (( ((pANTLR3_UINT8)input->nextChar) + la - 1) >= (((pANTLR3_UINT8)input->data) + input->sizeBuf)) + if (( (pANTLR3_UINT8)((pANTLR3_UINT32)input->nextChar + la - 1) + sizeof(ANTLR3_UINT32)) > (((pANTLR3_UINT8)input->data) + input->sizeBuf)) { return ANTLR3_CHARSTREAM_EOF; } @@ -1732,7 +1732,7 @@ antlr3UTF32LABE(pANTLR3_INT_STREAM is, ANTLR3_INT32 la) input = ((pANTLR3_INPUT_STREAM) (is->super)); - if (( ((pANTLR3_UINT8)input->nextChar) + la - 1) >= (((pANTLR3_UINT8)input->data) + input->sizeBuf)) + if (( (pANTLR3_UINT8)((pANTLR3_UINT32)input->nextChar + la - 1) + sizeof(ANTLR3_UINT32)) > (((pANTLR3_UINT8)input->data) + input->sizeBuf)) { return ANTLR3_CHARSTREAM_EOF; }