Router: fixed crash when matching an empty address pattern array.

A crash would occur when the router tried to match an
against an empty address pattern array.

The following configuration was used to reproduce the
issue:

{
    "listeners": {
        "127.0.0.1:8082": {
            "pass": "routes"
        }
    },
    "routes": [
        {
            "match": {
                "source": []
            },
            "action": {
                "return": 200
            }
        }
    ]
}
This commit is contained in:
Oisin Canty
2021-08-05 16:00:01 +00:00
parent 44fe31dc61
commit 60cf139961
3 changed files with 16 additions and 0 deletions

View File

@@ -1751,6 +1751,10 @@ class TestRouting(TestApplicationProto):
self.route_match_invalid({"source": "*:1-a"})
self.route_match_invalid({"source": "*:65536"})
def test_routes_match_source_none(self):
self.route_match({"source": []})
assert self.get()['status'] == 404, 'source none'
def test_routes_match_destination(self):
assert 'success' in self.conf(
{"*:7080": {"pass": "routes"}, "*:7081": {"pass": "routes"}},