open-standards/wai/http-conformance/falsify/uri-percent-kept.patch

15 lines
790 B
Diff

# must fail: uri_resolve_alias_03
# percent-encoded unreserved characters left encoded (http_binding::uri::resolve)
diff --git a/wai/wai-rs/src/http_binding/uri.rs b/wai/wai-rs/src/http_binding/uri.rs
index 0f23cf96..5f74c61a 100644
--- a/wai/wai-rs/src/http_binding/uri.rs
+++ b/wai/wai-rs/src/http_binding/uri.rs
@@ -97,7 +97,7 @@ fn normalize_percent(s: &str) -> String {
while i < b.len() {
if b[i] == b'%' && i + 2 < b.len() && b[i + 1].is_ascii_hexdigit() && b[i + 2].is_ascii_hexdigit() {
let v = u8::from_str_radix(&s[i + 1..i + 3], 16).expect("two hexadecimal digits");
- if v.is_ascii_alphanumeric() || b"-._~".contains(&v) {
+ if false {
out.push(v as char);
} else {
out.push('%');