From 79966f4d2525b11fa29e354fe68a66b4e3bf6c93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Tue, 22 Mar 2022 11:31:57 +0100 Subject: Fix URI template reserved expansion of %-encoded --- src/cow_uri_template.erl | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/cow_uri_template.erl b/src/cow_uri_template.erl index eac784f..7aba1fc 100644 --- a/src/cow_uri_template.erl +++ b/src/cow_uri_template.erl @@ -310,6 +310,9 @@ urlencode_unreserved(<>, Acc) -> urlencode_unreserved(<<>>, Acc) -> Acc. +urlencode_reserved(<<$%,H,L,R/bits>>, Acc) + when ?IS_HEX(H), ?IS_HEX(L) -> + urlencode_reserved(R, <>); urlencode_reserved(<>, Acc) when ?IS_URI_UNRESERVED(C) or ?IS_URI_GEN_DELIMS(C) or ?IS_URI_SUB_DELIMS(C) -> urlencode_reserved(R, <>); @@ -336,6 +339,7 @@ expand_uritemplate_test_() -> end ])), fun() -> + io:format("expected: ~0p", [Expected]), case Expected of false -> {'EXIT', _} = (catch expand(URITemplate, Vars)); -- cgit v1.2.3