Software /
code /
prosody
Changeset
9785:ff88b03c343f
util.http: Fix decoding of uppercase URL encoded chars
Broken in 1af5106a2c34
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Wed, 16 Jan 2019 13:53:04 +0100 |
parents | 9784:7fa273f8869e |
children | 9786:00f7af0be849 |
files | spec/util_http_spec.lua util/http.lua |
diffstat | 2 files changed, 6 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/spec/util_http_spec.lua Tue Jan 15 20:08:30 2019 +0100 +++ b/spec/util_http_spec.lua Wed Jan 16 13:53:04 2019 +0100 @@ -28,6 +28,11 @@ it("should decode important URL characters", function() assert.are.equal("This & that = something", http.urldecode("This%20%26%20that%20%3d%20something"), "Important URL chars escaped"); end); + + it("should decode both lower and uppercase", function () + assert.are.equal("This & that = {something}.", http.urldecode("This%20%26%20that%20%3D%20%7Bsomething%7D%2E"), "Important URL chars escaped"); + end); + end); describe("#formencode()", function()
--- a/util/http.lua Tue Jan 15 20:08:30 2019 +0100 +++ b/util/http.lua Wed Jan 16 13:53:04 2019 +0100 @@ -15,6 +15,7 @@ local u = format("%%%02x", i); url_codes[c] = u; url_codes[u] = c; + url_codes[u:upper()] = c; end local function urlencode(s) return s and (s:gsub("[^a-zA-Z0-9.~_-]", url_codes));