From 28502b5023b6ddbecf24c68f225762054882ebf5 Mon Sep 17 00:00:00 2001 From: Johan Brandhorst Date: Thu, 12 Jul 2018 16:32:02 +0000 Subject: [PATCH] net/http: correct use of byte slice in js syscall syscall/js does not allow []byte to be used in direct inputs to its JavaScript manipulation methods since https://github.com/golang/go/commit/bafe466a9537d8ea5ac5767504628803302ebb12. Unfortunately, this use of a byte slice was missed, so any uses of the WASM Roundtripper with a body will panic. This ensures the byte slice is appropriately converted before being passed to syscall. Fixes #26349 Change-Id: I83847645d71ce310c1eee3decddbac990fae166b GitHub-Last-Rev: 3914bda2ff457deba4b76182a48d26ce8948b4cb GitHub-Pull-Request: golang/go#26350 Reviewed-on: https://go-review.googlesource.com/123537 Run-TryBot: Emmanuel Odeke Reviewed-by: Richard Musiol Reviewed-by: Brad Fitzpatrick --- src/net/http/roundtrip_js.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/net/http/roundtrip_js.go b/src/net/http/roundtrip_js.go index 336c413cea23c..cb4a4392b5198 100644 --- a/src/net/http/roundtrip_js.go +++ b/src/net/http/roundtrip_js.go @@ -60,7 +60,9 @@ func (t *Transport) RoundTrip(req *Request) (*Response, error) { return nil, err } req.Body.Close() - opt.Set("body", body) + a := js.TypedArrayOf(body) + defer a.Release() + opt.Set("body", a) } respPromise := js.Global().Call("fetch", req.URL.String(), opt) var (