1--TEST--
2GHSA-w8qr-v226-r27w
3--EXTENSIONS--
4filter
5--FILE--
6<?php
7
8function test(string $input) {
9    var_dump(filter_var($input, FILTER_VALIDATE_URL));
10}
11
12echo "--- These ones should fail ---\n";
13test("http://t[est@127.0.0.1");
14test("http://t[est@[::1]");
15test("http://t[est@[::1");
16test("http://t[est@::1]");
17test("http://php.net\\@aliyun.com/aaa.do");
18test("http://test[@2001:db8:3333:4444:5555:6666:1.2.3.4]");
19test("http://te[st@2001:db8:3333:4444:5555:6666:1.2.3.4]");
20test("http://te[st@2001:db8:3333:4444:5555:6666:1.2.3.4");
21
22echo "--- These ones should work ---\n";
23test("http://test@127.0.0.1");
24test("http://test@[2001:db8:3333:4444:5555:6666:1.2.3.4]");
25test("http://test@[::1]");
26
27?>
28--EXPECT--
29--- These ones should fail ---
30bool(false)
31bool(false)
32bool(false)
33bool(false)
34bool(false)
35bool(false)
36bool(false)
37bool(false)
38--- These ones should work ---
39string(21) "http://test@127.0.0.1"
40string(50) "http://test@[2001:db8:3333:4444:5555:6666:1.2.3.4]"
41string(17) "http://test@[::1]"
42