From 6e5347803ccb4606c043a41c77cd175aa9213ff3 Mon Sep 17 00:00:00 2001 From: Steven Johnstone Date: Wed, 19 Nov 2025 09:30:57 +0000 Subject: [PATCH] Prevent an infinite loop parsing a capture name Fixes #3729. --- src/prism.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/prism.c b/src/prism.c index 20037b5b9f..7059db8f1d 100644 --- a/src/prism.c +++ b/src/prism.c @@ -20395,6 +20395,9 @@ pm_named_capture_escape_unicode(pm_parser_t *parser, pm_buffer_t *unescaped, con } size_t length = pm_strspn_hexadecimal_digit(cursor, end - cursor); + if (length == 0) { + break; + } uint32_t value = escape_unicode(parser, cursor, length); (void) pm_buffer_append_unicode_codepoint(unescaped, value);