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
F18106493: D21562.diff
Sun, Aug 10, 11:06 PM
F18104315: D21562.id51331.diff
Sun, Aug 10, 11:22 AM
F18103894: D21562.id51332.diff
Sun, Aug 10, 8:29 AM
F18100039: D21562.id.diff
Sat, Aug 9, 10:28 AM
F18098104: D21562.diff
Fri, Aug 8, 6:36 PM
F17708942: D21562.id51332.diff
Jul 17 2025, 3:21 AM
F17705871: D21562.diff
Jul 16 2025, 10:21 AM
Unknown Object (File)
Jun 3 2025, 7:59 AM
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