diff options
author | David Mitchell <davem@iabyn.com> | 2009-03-22 15:58:26 +0000 |
---|---|---|
committer | David Mitchell <davem@iabyn.com> | 2009-03-22 15:58:26 +0000 |
commit | c966426a3bb6619c8372ea83168fa58260cf133b (patch) | |
tree | 8c8fe99315230a947ec9ab146db43933e8effcb3 | |
parent | ac56ae2e858af2a770b8e1bbf5cc5d10917fbc46 (diff) | |
download | perl-c966426a3bb6619c8372ea83168fa58260cf133b.tar.gz |
fix [RT #60034]. An equivalent fix was already in 5.8.9 as change 34580.
-rw-r--r-- | regexec.c | 7 | ||||
-rwxr-xr-x | t/op/pat.t | 3 |
2 files changed, 5 insertions, 5 deletions
@@ -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 */ diff --git a/t/op/pat.t b/t/op/pat.t index c1cb120ea1..88fbe5d9f8 100755 --- a/t/op/pat.t +++ b/t/op/pat.t @@ -494,7 +494,6 @@ sub run_tests { nok "b$a=" =~ /a$a=/; ok "b$a=" =~ /ba+=/; - local $TODO = "See bug 60464" if $l > 32767; ok "ba$a=" =~ /b(?:a|b)+=/; } } @@ -4021,14 +4020,12 @@ sub run_tests { { local $BugId = '60034'; - local $TODO = "See bug 60034"; my $a = "xyzt" x 8192; ok $a =~ /\A(?>[a-z])*\z/, '(?>) does not cause wrongness on long string'; my $b = $a . chr 256; chop $b; { - local $TODO; iseq $a, $b; } ok $b =~ /\A(?>[a-z])*\z/, |