Dolda2000 GitWeb
/
wrw.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
cbb2bf5
)
Parse POST form-data better.
author
Fredrik Tolf
<fredrik@dolda2000.com>
Sat, 18 Feb 2023 22:17:25 +0000
(23:17 +0100)
committer
Fredrik Tolf
<fredrik@dolda2000.com>
Sat, 18 Feb 2023 22:17:25 +0000
(23:17 +0100)
wrw/form.py
patch
|
blob
|
blame
|
history
diff --git
a/wrw/form.py
b/wrw/form.py
index
f821ea1
..
902d759
100644
(file)
--- a/
wrw/form.py
+++ b/
wrw/form.py
@@
-6,14
+6,15
@@
__all__ = ["formdata"]
def formparse(req):
buf = {}
buf.update(urllib.parse.parse_qsl(req.query, keep_blank_values=True))
def formparse(req):
buf = {}
buf.update(urllib.parse.parse_qsl(req.query, keep_blank_values=True))
- if req.ihead.get("Content-Type") == "application/x-www-form-urlencoded":
+ ctype, ctpars = proto.pmimehead(req.ihead.get("Content-Type", ""))
+ if ctype == "application/x-www-form-urlencoded":
try:
rbody = req.input.read(2 ** 20)
except IOError as exc:
return exc
if len(rbody) >= 2 ** 20:
return ValueError("x-www-form-urlencoded data is absurdly long")
try:
rbody = req.input.read(2 ** 20)
except IOError as exc:
return exc
if len(rbody) >= 2 ** 20:
return ValueError("x-www-form-urlencoded data is absurdly long")
- buf.update(urllib.parse.parse_qsl(rbody.decode("latin1"), keep_blank_values=True))
+ buf.update(urllib.parse.parse_qsl(rbody.decode("latin1"),
encoding=ctparse.get("charset", "utf-8"),
keep_blank_values=True))
return buf
class badmultipart(IOError):
return buf
class badmultipart(IOError):