mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-26 07:20:57 +01:00
10966519e2
Summary: Fixes T9268. Currently, we try to match any string like "a2f313f1" as a commit/revision, so short hashes will get picked up. However, we don't require a word boundary or terminal after the match, so for input like "aaa...aaaaz" the engine can get stuck trying to split the string into sub-matches. That is, in the original case, the input "aaaz" had valid matches against `[rA-Z0-9a-f]+` up to "z" of: aaa aa a a aa a a a All of these will fail once it hits "z", but it has to try them all. This complexity is explosive with longer strings. Instead, require a word boundary or EOL after the match, so this is the only valid match: aaa Then the engine sees the "z", says "nope, no match" and doesn't have to backtrack across all possible combinations. Test Plan: Added a failing unit test, applied patch, clean test. Reviewers: chad Reviewed By: chad Maniphest Tasks: T9268 Differential Revision: https://secure.phabricator.com/D13997 |
||
---|---|---|
.. | ||
__tests__ | ||
DifferentialChangesetParser.php | ||
DifferentialCommitMessageParser.php | ||
DifferentialCustomFieldDependsOnParser.php | ||
DifferentialCustomFieldRevertsParser.php | ||
DifferentialHunkParser.php | ||
DifferentialLineAdjustmentMap.php |