-
Notifications
You must be signed in to change notification settings - Fork 204
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
internal_dfa_match, a stack overflow occurred due to recursive calls. #258
Comments
Would you please wrap the pasted text into two lines of backticks (```) so that all the # numbers do not get interpreted as references to other tickets. |
pattern:.(A-Za-zwyer|(?i)i{0,6}(\C))++[^z]{0,} SUMMARY: AddressSanitizer: stack-overflow /root/fuzzing_pcre2/pcre2-10.42/src/pcre2_dfa_match.c:533 in internal_dfa_match “ |
This is not a bug; it's just that the default recursion limit is very large. Please check the documentation for pcre2_set_depth_limit(). This is part of what it says: ",,, is supported by pcre2_dfa_match(), which uses it to limit the depth of nested internal recursive function calls that implement atomic groups, lookaround assertions, and pattern recursions. This limits, indirectly, the amount of system stack that is used. It was more useful in versions before 10.32, when stack memory was used for local workspace vectors for recursive function calls. From version 10.32, only local variables are allocated on the stack and as each call uses only a few hundred bytes, even a small stack can support quite a lot of recursion." |
pattern:.(A-Za-zwyer|(?i)i{0,6}(\C))++[^z]{0,}
However, the length of the text to be matched must be sufficient for it to match 7000 to 8000 times.
you can use this text
debug message:
On my computer, it will stack overflow after about 7800 recursive calls.
The text was updated successfully, but these errors were encountered: