From 875470a89007df550f95017d89e3069a92f3d4c4 Mon Sep 17 00:00:00 2001 From: jmestwa-coder Date: Tue, 23 Jun 2026 21:18:59 +0530 Subject: use anchored matching in URIResultParser.isBasicallyValidURI (#2109) --- .../google/zxing/client/result/URIParsedResultTestCase.java | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'core/src/test/java/com') diff --git a/core/src/test/java/com/google/zxing/client/result/URIParsedResultTestCase.java b/core/src/test/java/com/google/zxing/client/result/URIParsedResultTestCase.java index 168acbf3c..8b3dac1c0 100644 --- a/core/src/test/java/com/google/zxing/client/result/URIParsedResultTestCase.java +++ b/core/src/test/java/com/google/zxing/client/result/URIParsedResultTestCase.java @@ -65,6 +65,17 @@ public final class URIParsedResultTestCase extends Assert { doTestNotUri("foo.bar.bing.baz.foo.bar.bing.baz"); } + // A long run of characters that never forms a URI at the start must be rejected quickly; + // find() rescanned from every position and was quadratic on such input. + @Test(timeout = 5000L) + public void testNoQuadraticScanning() { + StringBuilder sb = new StringBuilder(200000); + for (int i = 0; i < 200000; i++) { + sb.append('a'); + } + assertFalse(URIResultParser.isBasicallyValidURI(sb.toString())); + } + @Test public void testURLTO() { doTest("urlto::bar.com", "http://bar.com", null); -- cgit v1.2.3