aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Cheney <dave@cheney.net>2012-09-22 05:54:50 +1000
committerDave Cheney <dave@cheney.net>2012-09-22 05:54:50 +1000
commitaec9af0acba6c997b9bb61e5c3287fae2bb783bf (patch)
tree751ca3f6a88cefdf67cb72bbc07a9a5ffb3bf442
parent8851c499892c74faf670927538576fc674ff9d4a (diff)
downloadgo-aec9af0acba6c997b9bb61e5c3287fae2bb783bf.tar.gz
go-aec9af0acba6c997b9bb61e5c3287fae2bb783bf.zip
[release-branch.go1] net/http/httputil: fix race in DumpRequestOut
««« backport 3b78b41a4b50 net/http/httputil: fix race in DumpRequestOut Fixes #3892. Swapping the order of the writers inside the MultiWriter ensures the request will be written to buf before http.ReadRequest completes. The fencedBuffer is not required to make the test pass on any machine that I have access too, but as the buf is shared across goroutines, I think it is necessary for correctness. R=bradfitz, fullung, franciscossouza CC=golang-dev https://golang.org/cl/6483061 »»»
-rw-r--r--src/pkg/net/http/httputil/dump.go2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/pkg/net/http/httputil/dump.go b/src/pkg/net/http/httputil/dump.go
index 892ef4eded..0fb2eeb8c0 100644
--- a/src/pkg/net/http/httputil/dump.go
+++ b/src/pkg/net/http/httputil/dump.go
@@ -89,7 +89,7 @@ func DumpRequestOut(req *http.Request, body bool) ([]byte, error) {
t := &http.Transport{
Dial: func(net, addr string) (net.Conn, error) {
- return &dumpConn{io.MultiWriter(pw, &buf), dr}, nil
+ return &dumpConn{io.MultiWriter(&buf, pw), dr}, nil
},
}