Skip to content

Commit 6a77d29

Browse files
committed
test: add regression tests for #27468 (invalid URI segfaults)
Prior to PR #27468 (commit 11422cc) all call-sites of `GetQueryParameter(...)` in the REST module could trigger a crash. Add missing test cases for all possible code-paths as a regression test, as a foundation for possible follow-up fixes (which aim to resolve this issue in a more general and robust way).
1 parent 54e07a0 commit 6a77d29

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

test/functional/interface_rest.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -278,8 +278,9 @@ def run_test(self):
278278
assert_equal(json_obj[0]['hash'], bb_hash) # request/response hash should be the same
279279

280280
# Check invalid uri (% symbol at the end of the request)
281-
resp = self.test_rest_request(f"/headers/{bb_hash}%", ret_type=RetType.OBJ, status=400)
282-
assert_equal(resp.read().decode('utf-8').rstrip(), "URI parsing failed, it likely contained RFC 3986 invalid characters")
281+
for invalid_uri in [f"/headers/{bb_hash}%", f"/blockfilterheaders/basic/{bb_hash}%", "/mempool/contents.json?%"]:
282+
resp = self.test_rest_request(invalid_uri, ret_type=RetType.OBJ, status=400)
283+
assert_equal(resp.read().decode('utf-8').rstrip(), "URI parsing failed, it likely contained RFC 3986 invalid characters")
283284

284285
# Compare with normal RPC block response
285286
rpc_block_json = self.nodes[0].getblock(bb_hash)

0 commit comments

Comments
 (0)