aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhopehook <hopehook.com@gmail.com>2022-02-09 20:20:06 +0800
committerIan Lance Taylor <iant@golang.org>2022-03-22 15:16:23 +0000
commiteca0d44cec58951fb716e540dcc21c0f527686d5 (patch)
treebe5e6f43ad048525121bccb244dc47f141d37dd0
parent96567fb3ccdc8d8c052606112db7b39abd725b59 (diff)
downloadgo-eca0d44cec58951fb716e540dcc21c0f527686d5.tar.gz
go-eca0d44cec58951fb716e540dcc21c0f527686d5.zip
net/http: fix nil body causing ParseMultipartForm to panic
ParseMultipartForm relies on a valid multipartReader, if the request body is nil, the multipartReader should return an error. This way ParseMultipartForm can return an error instead of causing mr.ReadForm(maxMemory) to panic Fixes #48206 Change-Id: Ief906f2340c7ab29cacbd5f56892117202a0b911 Reviewed-on: https://go-review.googlesource.com/c/go/+/384454 Trust: Damien Neil <dneil@google.com> Run-TryBot: Damien Neil <dneil@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Damien Neil <dneil@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Trust: Brad Fitzpatrick <bradfitz@golang.org>
-rw-r--r--src/net/http/request.go3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/net/http/request.go b/src/net/http/request.go
index f8f1eeab29..dbe947aec4 100644
--- a/src/net/http/request.go
+++ b/src/net/http/request.go
@@ -480,6 +480,9 @@ func (r *Request) multipartReader(allowMixed bool) (*multipart.Reader, error) {
if v == "" {
return nil, ErrNotMultipart
}
+ if r.Body == nil {
+ return nil, errors.New("missing form body")
+ }
d, params, err := mime.ParseMediaType(v)
if err != nil || !(d == "multipart/form-data" || allowMixed && d == "multipart/mixed") {
return nil, ErrNotMultipart