1
0
mirror of https://github.com/golang/go synced 2024-11-21 22:34:48 -07:00

http: put a limit on POST size

R=rsc
CC=golang-dev
https://golang.org/cl/4432076
This commit is contained in:
Brad Fitzpatrick 2011-04-27 15:36:39 -07:00
parent 6e71e1ca76
commit ec3fe2a5b6

View File

@ -596,13 +596,17 @@ func (r *Request) ParseForm() (err os.Error) {
ct := r.Header.Get("Content-Type")
switch strings.Split(ct, ";", 2)[0] {
case "text/plain", "application/x-www-form-urlencoded", "":
b, e := ioutil.ReadAll(r.Body)
const maxFormSize = int64(10 << 20) // 10 MB is a lot of text.
b, e := ioutil.ReadAll(io.LimitReader(r.Body, maxFormSize+1))
if e != nil {
if err == nil {
err = e
}
break
}
if int64(len(b)) > maxFormSize {
return os.NewError("http: POST too large")
}
e = parseQuery(r.Form, string(b))
if err == nil {
err = e