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 <jo@mein.io>
This commit is contained in:
parent
5ef51b2abe
commit
82abf9add9
1 changed files with 4 additions and 4 deletions
|
@ -443,16 +443,16 @@ function urldecode_message_body(src, msg)
|
||||||
if what == parser.TUPLE then
|
if what == parser.TUPLE then
|
||||||
name, value = nil, nil
|
name, value = nil, nil
|
||||||
elseif what == parser.NAME then
|
elseif what == parser.NAME then
|
||||||
name = lhttp.urldecode(buffer)
|
name = lhttp.urldecode(buffer, lhttp.DECODE_PLUS)
|
||||||
elseif what == parser.VALUE and name then
|
elseif what == parser.VALUE and name then
|
||||||
local val = msg.params[name]
|
local val = msg.params[name]
|
||||||
|
|
||||||
if type(val) == "table" then
|
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
|
elseif val ~= nil then
|
||||||
msg.params[name] = { val, lhttp.urldecode(buffer) or "" }
|
msg.params[name] = { val, lhttp.urldecode(buffer, lhttp.DECODE_PLUS) or "" }
|
||||||
else
|
else
|
||||||
msg.params[name] = lhttp.urldecode(buffer) or ""
|
msg.params[name] = lhttp.urldecode(buffer, lhttp.DECODE_PLUS) or ""
|
||||||
end
|
end
|
||||||
elseif what == parser.ERROR then
|
elseif what == parser.ERROR then
|
||||||
err = buffer
|
err = buffer
|
||||||
|
|
Loading…
Reference in a new issue