Fixed form-parsing bug.
[wrw.git] / wrw / form.py
index 7184635..53fc82d 100644 (file)
@@ -7,10 +7,10 @@ def formparse(req):
     buf = {}
     buf.update(urllib.parse.parse_qsl(req.query))
     if req.ihead.get("Content-Type") == "application/x-www-form-urlencoded":
-        if req.input.limit > 2 ** 20:
+        rbody = req.input.read(2 ** 20)
+        if len(rbody) >= 2 ** 20:
             raise ValueError("x-www-form-urlencoded data is absurdly long")
-        rbody = req.input.read()
-        buf.update(urllib.parse.parse_qsl(rbody))
+        buf.update(urllib.parse.parse_qsl(rbody.decode("latin1")))
     return buf
 
 class badmultipart(Exception):