From 1ef6b2805ea1d78c082c7c55df39fc3d3942e4c9 Mon Sep 17 00:00:00 2001 From: Damien Neil Date: Fri, 26 Jul 2024 13:23:09 -0700 Subject: net/http: don't write HEAD response body in ResponseWriter.ReadFrom Responses to HEAD requests don't have a body. The ResponseWriter automatically discards writes to the response body when responding to a HEAD request. ResponseWriter.ReadFrom was failing to discard writes under some circumstances; fix it to do so. Fixes #68609 Change-Id: I912f6b2b2a535df28ae37b875fcf15b10da1af2b Reviewed-on: https://go-review.googlesource.com/c/go/+/601475 Reviewed-by: Brad Fitzpatrick Auto-Submit: Damien Neil LUCI-TryBot-Result: Go LUCI Reviewed-by: Michael Knyszek --- src/net/http/server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/net/http/server.go') diff --git a/src/net/http/server.go b/src/net/http/server.go index 1ff72a0455..1eb0e50206 100644 --- a/src/net/http/server.go +++ b/src/net/http/server.go @@ -611,7 +611,7 @@ func (w *response) ReadFrom(src io.Reader) (n int64, err error) { w.cw.flush() // make sure Header is written; flush data to rwc // Now that cw has been flushed, its chunking field is guaranteed initialized. - if !w.cw.chunking && w.bodyAllowed() { + if !w.cw.chunking && w.bodyAllowed() && w.req.Method != "HEAD" { n0, err := rf.ReadFrom(src) n += n0 w.written += n0 -- cgit v1.3-5-g9baa