Page MenuHomePhabricator

Limit remarkup URI protocol length to 32 characters to avoid expensive regex behavior
ClosedPublic

Authored by epriestley on Feb 17 2021, 9:12 PM.
Tags
None
Referenced Files
F19004888: D21562.id51331.diff
Fri, Nov 21, 1:02 PM
F19004490: D21562.diff
Fri, Nov 21, 11:31 AM
F18998692: D21562.diff
Thu, Nov 20, 7:27 PM
F18993609: D21562.id51331.diff
Wed, Nov 19, 8:12 AM
F18903018: D21562.id51331.diff
Sat, Nov 8, 3:41 AM
F18849098: D21562.diff
Thu, Oct 30, 7:44 AM
F18804382: D21562.id.diff
Oct 18 2025, 7:53 AM
F18801584: D21562.diff
Oct 17 2025, 6:11 PM
Subscribers
None

Details

Summary

Ref T13608. When searching for bare URIs in remarkup text, don't look for URIs with a protocol string longer than 32 characters.

This avoids a case where the regexp engine may be tricked into executing at O(N^2) or some similar complexity.

Test Plan
  • Applied remarkup to "AAAA..." (512KB).
  • Before: 64 seconds to process.
  • After: <10ms to process.
  • Ran unit tests.

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable