summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
a84da04)
This could be triggered by trying to compile eg 'qr{x+(y(?0))*}'.
( flags & SCF_IN_DEFINE )
||
(
( flags & SCF_IN_DEFINE )
||
(
- (is_inf_internal || is_inf || data->flags & SF_IS_INF)
+ (is_inf_internal || is_inf || (data && data->flags & SF_IS_INF))
&&
( (flags & (SCF_DO_STCLASS | SCF_DO_SUBSTR)) == 0 )
)
&&
( (flags & (SCF_DO_STCLASS | SCF_DO_SUBSTR)) == 0 )
)
skip_all_without_unicode_tables();
}
skip_all_without_unicode_tables();
}
-plan tests => 770; # Update this when adding/deleting tests.
+plan tests => 772; # Update this when adding/deleting tests.
run_tests() unless caller;
run_tests() unless caller;
fresh_perl_is($code, "No infinite loop here!", {},
"test that we handle things like m/\\888888888/ without infinite loops" );
}
fresh_perl_is($code, "No infinite loop here!", {},
"test that we handle things like m/\\888888888/ without infinite loops" );
}
+
+ {
+ # [perl #123843] hits SEGV trying to compile this pattern
+ my $match;
+ eval q{ ($match) = ("xxyxxyxy" =~ m{(x+(y(?1))*)}) };
+ ok(1, "compiled GOSUB in CURLYM ok");
+ is($match, 'xxyxxyx', "matched GOSUB in CURLYM");
+ }
} # End of sub run_tests
1;
} # End of sub run_tests
1;