fix [RT #60034]. An equivalent fix was already in 5.8.9 as change 34580.
[p5sagit/p5-mst-13.2.git] / regexec.c
index 58d973a..93fadab 100644 (file)
--- a/regexec.c
+++ b/regexec.c
@@ -4478,8 +4478,11 @@ NULL
                cur_eval->u.eval.close_paren == (U32)ST.me->flags) 
                goto fake_end;
                
-           if ( ST.count < (ST.minmod ? ARG1(ST.me) : ARG2(ST.me)) )
-               goto curlym_do_A; /* try to match another A */
+           {
+               I32 max = (ST.minmod ? ARG1(ST.me) : ARG2(ST.me));
+               if ( max == REG_INFTY || ST.count < max )
+                   goto curlym_do_A; /* try to match another A */
+           }
            goto curlym_do_B; /* try to match B */
 
        case CURLYM_A_fail: /* just failed to match an A */