diff --git a/lib/uri.ml b/lib/uri.ml index 02f93dd..e1e0155 100644 --- a/lib/uri.ml +++ b/lib/uri.ml @@ -104,6 +104,7 @@ module Generic : Scheme = struct (* '&' is safe but we should encode literals to avoid ambiguity with the already parsed qs params *) a.(Char.code '&') <- false; + a.(Char.code ';') <- false; a.(Char.code '+') <- false; a diff --git a/lib_test/test_runner.ml b/lib_test/test_runner.ml index 79a6328..229cb1a 100644 --- a/lib_test/test_runner.ml +++ b/lib_test/test_runner.ml @@ -135,6 +135,8 @@ let uri_query_make = [ ["foo1",["bar1"];"foo2",["bar2"]], "foo1=bar1&foo2=bar2"; ["foo1",["bar1"];"foo2",["bar2"];"foo3",["bar3"]], "foo1=bar1&foo2=bar2&foo3=bar3"; + ["semicolon",[";"]],"semicolon=%3B"; + [";",["semicolon"]],"%3B=semicolon"; ["#",["#";"#"]], "%23=%23,%23"; ["",[]], ""; ["",[""]], "=";