patch 8.1.1720: crash with very long %[] pattern
Problem: Crash with very long %[] pattern. (Reza Mirzazade farkhani)
Solution: Check for reg_toolong. (closes #4703)
diff --git a/src/regexp.c b/src/regexp.c
index 5676044..7d0ac60 100644
--- a/src/regexp.c
+++ b/src/regexp.c
@@ -2175,7 +2175,11 @@
if (ret == NULL)
ret = br;
else
+ {
regtail(lastnode, br);
+ if (reg_toolong)
+ return NULL;
+ }
ungetchr();
one_exactly = TRUE;
@@ -2200,6 +2204,8 @@
if (OP(br) == BRANCH)
{
regtail(br, lastbranch);
+ if (reg_toolong)
+ return NULL;
br = OPERAND(br);
}
else