From: Jo-Philipp Wich Date: Sun, 22 Apr 2018 10:03:23 +0000 (+0200) Subject: luci-base: decode plus signs in x-www-form-urlencoded POST data X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=82abf9add923e5edd1d6abb07314f16f9167978f;p=oweals%2Fluci.git luci-base: decode plus signs in x-www-form-urlencoded POST data Depends on 5ef51b2ab ("lucihttp: update to latest HEAD"). Fixes #1755. Signed-off-by: Jo-Philipp Wich --- diff --git a/modules/luci-base/luasrc/http.lua b/modules/luci-base/luasrc/http.lua index 29edb4470..56d006482 100644 --- a/modules/luci-base/luasrc/http.lua +++ b/modules/luci-base/luasrc/http.lua @@ -443,16 +443,16 @@ function urldecode_message_body(src, msg) if what == parser.TUPLE then name, value = nil, nil elseif what == parser.NAME then - name = lhttp.urldecode(buffer) + name = lhttp.urldecode(buffer, lhttp.DECODE_PLUS) elseif what == parser.VALUE and name then local val = msg.params[name] if type(val) == "table" then - val[#val+1] = lhttp.urldecode(buffer) or "" + val[#val+1] = lhttp.urldecode(buffer, lhttp.DECODE_PLUS) or "" elseif val ~= nil then - msg.params[name] = { val, lhttp.urldecode(buffer) or "" } + msg.params[name] = { val, lhttp.urldecode(buffer, lhttp.DECODE_PLUS) or "" } else - msg.params[name] = lhttp.urldecode(buffer) or "" + msg.params[name] = lhttp.urldecode(buffer, lhttp.DECODE_PLUS) or "" end elseif what == parser.ERROR then err = buffer