<feed xmlns='http://www.w3.org/2005/Atom'>
<title>go, branch go1.16.10</title>
<subtitle>Fork of Go programming language with my patches.</subtitle>
<id>http://git.kilabit.info/go/atom?h=go1.16.10</id>
<link rel='self' href='http://git.kilabit.info/go/atom?h=go1.16.10'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/'/>
<updated>2021-11-04T13:55:28Z</updated>
<entry>
<title>[release-branch.go1.16] go1.16.10</title>
<updated>2021-11-04T13:55:28Z</updated>
<author>
<name>Than McIntosh</name>
<email>thanm@google.com</email>
</author>
<published>2021-11-04T12:59:03Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=23991f50b34f8707bcfc7761321bb3b0e9dba10e'/>
<id>urn:sha1:23991f50b34f8707bcfc7761321bb3b0e9dba10e</id>
<content type='text'>
Change-Id: I872971806a723e6add42bb78f91a8ef8586f3d58
Reviewed-on: https://go-review.googlesource.com/c/go/+/361199
Trust: Than McIntosh &lt;thanm@google.com&gt;
Run-TryBot: Than McIntosh &lt;thanm@google.com&gt;
TryBot-Result: Go Bot &lt;gobot@golang.org&gt;
Reviewed-by: Dmitri Shuralyov &lt;dmitshur@golang.org&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.16] archive/zip: don't panic on (*Reader).Open</title>
<updated>2021-11-03T16:57:50Z</updated>
<author>
<name>Jason7602</name>
<email>jansonzhe@gmail.com</email>
</author>
<published>2021-09-14T13:38:19Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=88407a8dd98411f1730907dc8a69b99488af0052'/>
<id>urn:sha1:88407a8dd98411f1730907dc8a69b99488af0052</id>
<content type='text'>
Previously, opening a zip with (*Reader).Open could result in a panic if
the zip contained a file whose name was exclusively made up of slash
characters or ".." path elements.

Open could also panic if passed the empty string directly as an argument.

Now, any files in the zip whose name could not be made valid for
fs.FS.Open will be skipped, and no longer added to the fs.FS file list,
although they are still accessible through (*Reader).File.

Note that it was already the case that a file could be accessible from
(*Reader).Open with a name different from the one in (*Reader).File, as
the former is the cleaned name, while the latter is the original one.

Finally, made the actual panic site robust as a defense-in-depth measure.

Fixes CVE-2021-41772
Fixes #48251
Updates #48085

Co-authored-by: Filippo Valsorda &lt;filippo@golang.org&gt;
Change-Id: I6271a3f2892e7746f52e213b8eba9a1bba974678
Reviewed-on: https://go-review.googlesource.com/c/go/+/349770
Run-TryBot: Filippo Valsorda &lt;filippo@golang.org&gt;
Reviewed-by: Katie Hockman &lt;katie@golang.org&gt;
Reviewed-by: Filippo Valsorda &lt;filippo@golang.org&gt;
Trust: Katie Hockman &lt;katie@golang.org&gt;
Trust: Julie Qiu &lt;julie@golang.org&gt;
(cherry picked from commit b24687394b55a93449e2be4e6892ead58ea9a10f)
Reviewed-on: https://go-review.googlesource.com/c/go/+/360858
Trust: Dmitri Shuralyov &lt;dmitshur@golang.org&gt;
Run-TryBot: Dmitri Shuralyov &lt;dmitshur@golang.org&gt;
TryBot-Result: Go Bot &lt;gobot@golang.org&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.16] net/http: update bundled golang.org/x/net/http2</title>
<updated>2021-11-01T21:27:26Z</updated>
<author>
<name>Dmitri Shuralyov</name>
<email>dmitshur@golang.org</email>
</author>
<published>2021-10-29T17:15:55Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=631b56767cdcfb3deb0ba9c6036065c60fd43f07'/>
<id>urn:sha1:631b56767cdcfb3deb0ba9c6036065c60fd43f07</id>
<content type='text'>
Pull in approved backports to golang.org/x/net/http2:

	d8c3cde set ContentLength to -1 for HEAD response with no Content-Length
	7b24c0a set Response.ContentLength to 0 when headers end stream
	c4031f5 don't abort half-closed streams on server connection close
	2f744fa on write errors, close ClientConn before returning from RoundTrip
	275be3f deflake TestTransportReqBodyAfterResponse_200
	d26011a close the Request's Body when aborting a stream
	e5dd05d return unexpected eof on empty response with non-zero content length
	640e170 don't rely on system TCP buffer sizes in TestServer_MaxQueuedControlFrames
	198b78c detect write-blocked PING frames
	20ed279 avoid race in TestTransportReqBodyAfterResponse_403.
	d585ef0 avoid clientConnPool panic when NewClientConn fails
	d06dfc7 avoid extra GetConn trace call
	1760f31 refactor request write flow
	6e87631 remove PingTimeout from TestTransportPingWhenReading
	b843c7d fix Transport connection pool TOCTOU max concurrent stream bug
	ab1d67c shut down idle Transport connections after protocol errors
	3741e47 remove check for read-after-close of request bodies
	2df4c53 fix race in DATA frame padding refund
	d7eefc9 avoid blocking while holding ClientConn.mu
	78e8d65 fix off-by-one error in client check for max concurrent streams
	828651b close request body after early RoundTrip failures
	59c0c25 limit client initial MAX_CONCURRENT_STREAMS
	524fcad make Transport not reuse conns after a stream protocol error
	0fe5f8a accept zero-length block fragments in HEADERS frames
	0e5043f close the request body if needed
	bb4ce86 reduce frameScratchBuffer caching aggressiveness
	3112343 also set "http/1.1" ALPN in ConfigureServer
	63939f4 switch to ASCII equivalents of string functions
	54161af use (*tls.Dialer).DialContext in dialTLS
	75b906f discard DATA frames with higher stream IDs during graceful shutdown
	1dfe517 rework Ping test to rely less on timing

By doing:

	$ go get -d golang.org/x/net@internal-branch.go1.16-vendor
	go get: upgraded golang.org/x/net v0.0.0-20210901185431-d2e9a4ea682f =&gt; v0.0.0-20211101194150-d8c3cde3c676
	$ go mod tidy
	$ go mod vendor
	$ go generate -run=bundle std

Fixes #49076.
Fixes #48822.
Fixes #48649.

Change-Id: Ie17f327eef2b6e6a9a1ac7635c5c4daef792e893
Reviewed-on: https://go-review.googlesource.com/c/go/+/359774
Trust: Dmitri Shuralyov &lt;dmitshur@golang.org&gt;
Run-TryBot: Dmitri Shuralyov &lt;dmitshur@golang.org&gt;
TryBot-Result: Go Bot &lt;gobot@golang.org&gt;
Reviewed-by: Damien Neil &lt;dneil@google.com&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.16] debug/macho: fail on invalid dynamic symbol table command</title>
<updated>2021-10-29T19:42:43Z</updated>
<author>
<name>Roland Shoemaker</name>
<email>roland@golang.org</email>
</author>
<published>2021-10-14T20:02:01Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=d19c5bdb24e093a2d5097b7623284eb02726cede'/>
<id>urn:sha1:d19c5bdb24e093a2d5097b7623284eb02726cede</id>
<content type='text'>
Fail out when loading a file that contains a dynamic symbol table
command that indicates a larger number of symbols than exist in the
loaded symbol table.

Thanks to Burak Çarıkçı - Yunus Yıldırım (CT-Zer0 Crypttech) for
reporting this issue.

Updates #48990
Fixes #48991
Fixes CVE-2021-41771

Change-Id: Ic3d6e6529241afcc959544b326b21b663262bad5
Reviewed-on: https://go-review.googlesource.com/c/go/+/355990
Reviewed-by: Julie Qiu &lt;julie@golang.org&gt;
Reviewed-by: Katie Hockman &lt;katie@golang.org&gt;
Reviewed-by: Emmanuel Odeke &lt;emmanuel@orijtech.com&gt;
Run-TryBot: Roland Shoemaker &lt;roland@golang.org&gt;
TryBot-Result: Go Bot &lt;gobot@golang.org&gt;
Trust: Katie Hockman &lt;katie@golang.org&gt;
(cherry picked from commit 61536ec03063b4951163bd09609c86d82631fa27)
Reviewed-on: https://go-review.googlesource.com/c/go/+/359454
Reviewed-by: Dmitri Shuralyov &lt;dmitshur@golang.org&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.16] cmd/link: increase reserved space for passing env on wasm</title>
<updated>2021-10-28T18:01:38Z</updated>
<author>
<name>Richard Musiol</name>
<email>mail@richard-musiol.de</email>
</author>
<published>2021-10-24T10:28:18Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=900443349b17bb1f989daa64856546955c70d104'/>
<id>urn:sha1:900443349b17bb1f989daa64856546955c70d104</id>
<content type='text'>
On wasm, the wasm_exec.js helper passes the command line arguments and
environment variables via a reserved space in the wasm linear memory.
Increase this reserved space from 4096 to 8192 bytes so more environment
variables can fit into the limit.

Later, after https://golang.org/cl/350737 landed, we can switch to the
WASI interface for getting the arguments and environment. This would
remove the limit entirely.

Updates #49011.
Fixes #49153.

Change-Id: I48a6e952a97d33404ed692c98e9b49c5cd6b269b
Reviewed-on: https://go-review.googlesource.com/c/go/+/358194
Trust: Richard Musiol &lt;neelance@gmail.com&gt;
Run-TryBot: Richard Musiol &lt;neelance@gmail.com&gt;
TryBot-Result: Go Bot &lt;gobot@golang.org&gt;
Reviewed-by: Cherry Mui &lt;cherryyz@google.com&gt;
(cherry picked from commit 252324e879e32f948d885f787decf8af06f82be9)
Reviewed-on: https://go-review.googlesource.com/c/go/+/359400
Trust: Dmitri Shuralyov &lt;dmitshur@golang.org&gt;
Run-TryBot: Dmitri Shuralyov &lt;dmitshur@golang.org&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.16] runtime: consistently access pollDesc r/w Gs with atomics</title>
<updated>2021-10-28T15:31:34Z</updated>
<author>
<name>Michael Pratt</name>
<email>mpratt@google.com</email>
</author>
<published>2021-10-14T22:18:49Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=8c9c1487727a5e7938ca6ee7440334123a467b25'/>
<id>urn:sha1:8c9c1487727a5e7938ca6ee7440334123a467b25</id>
<content type='text'>
Both netpollblock and netpollunblock read gpp using a non-atomic load.
When consuming a ready event, netpollblock clears gpp using a non-atomic
store, thus skipping a barrier.

Thus on systems with weak memory ordering, a sequence like so this is
possible:

             T1                                T2

1. netpollblock: read gpp -&gt; pdReady
2. netpollblock: store gpp -&gt; 0

                                 3. netpollunblock: read gpp -&gt; pdReady
                                 4. netpollunblock: return

i.e., without a happens-before edge between (2) and (3), netpollunblock
may read the stale value of gpp.

Switch these access to use atomic loads and stores in order to create
these edges.

For ease of future maintainance, I've simply changed rg and wg to always
be accessed atomically, though I don't believe pollOpen or pollClose
require atomics today.

For #48925
Fixes #49009

Change-Id: I903ea667eea320277610b4f969129935731520c3
Reviewed-on: https://go-review.googlesource.com/c/go/+/355952
Trust: Michael Pratt &lt;mpratt@google.com&gt;
Run-TryBot: Michael Pratt &lt;mpratt@google.com&gt;
TryBot-Result: Go Bot &lt;gobot@golang.org&gt;
Reviewed-by: Michael Knyszek &lt;mknyszek@google.com&gt;
Reviewed-by: David Chase &lt;drchase@google.com&gt;
(cherry picked from commit 1b072b3ed56c18619587354f499fcda5279718a2)
Reviewed-on: https://go-review.googlesource.com/c/go/+/356370
</content>
</entry>
<entry>
<title>[release-branch.go1.16] cmd/compile: ensure constant shift amounts are in range for arm</title>
<updated>2021-10-27T21:14:21Z</updated>
<author>
<name>Keith Randall</name>
<email>khr@golang.org</email>
</author>
<published>2021-09-20T04:09:57Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=1a6281d9501763b1457abe99f142f0efe435fe29'/>
<id>urn:sha1:1a6281d9501763b1457abe99f142f0efe435fe29</id>
<content type='text'>
Ensure constant shift amounts are in the range [0-31]. When shift amounts
are out of range, bad things happen. Shift amounts out of range occur
when lowering 64-bit shifts (we take an in-range shift s in [0-63] and
calculate s-32 and 32-s, both of which might be out of [0-31]).

The constant shift operations themselves still work, but their shift
amounts get copied unmolested to operations like ORshiftLL which use only
the low 5 bits. That changes an operation like &lt;&lt;100 which unconditionally
produces 0, to &lt;&lt;4, which doesn't.

Fixes #48478

Change-Id: I87363ef2b4ceaf3b2e316426064626efdfbb8ee3
Reviewed-on: https://go-review.googlesource.com/c/go/+/350969
Trust: Keith Randall &lt;khr@golang.org&gt;
Run-TryBot: Keith Randall &lt;khr@golang.org&gt;
TryBot-Result: Go Bot &lt;gobot@golang.org&gt;
Reviewed-by: Cherry Mui &lt;cherryyz@google.com&gt;
(cherry picked from commit eff27e858b771bf5e0b5e7e836827c7d2941e6d4)
Reviewed-on: https://go-review.googlesource.com/c/go/+/351070
Reviewed-by: Austin Clements &lt;austin@google.com&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.16] cmd/compile: fix simplification rules on arm/arm64</title>
<updated>2021-10-27T20:42:13Z</updated>
<author>
<name>Keith Randall</name>
<email>khr@golang.org</email>
</author>
<published>2021-09-19T21:20:56Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=cfe182c67328f852d33ff00c9dc876765f19e546'/>
<id>urn:sha1:cfe182c67328f852d33ff00c9dc876765f19e546</id>
<content type='text'>
Fixes #48474

Change-Id: Ic1e918f916eae223a3b530a51a58f03031924670
Reviewed-on: https://go-review.googlesource.com/c/go/+/350913
Trust: Keith Randall &lt;khr@golang.org&gt;
Run-TryBot: Keith Randall &lt;khr@golang.org&gt;
TryBot-Result: Go Bot &lt;gobot@golang.org&gt;
Reviewed-by: Cherry Mui &lt;cherryyz@google.com&gt;
Reviewed-on: https://go-review.googlesource.com/c/go/+/351072
Reviewed-by: Austin Clements &lt;austin@google.com&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.16] go1.16.9</title>
<updated>2021-10-07T19:49:45Z</updated>
<author>
<name>Michael Anthony Knyszek</name>
<email>mknyszek@google.com</email>
</author>
<published>2021-10-07T18:45:12Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=c580180744e60d6c84fc0b59d634fcff01290780'/>
<id>urn:sha1:c580180744e60d6c84fc0b59d634fcff01290780</id>
<content type='text'>
Change-Id: I7328dd94a85b97ec8c3ecf4f56eca9c56a6d806e
Reviewed-on: https://go-review.googlesource.com/c/go/+/354593
Trust: Michael Knyszek &lt;mknyszek@google.com&gt;
Run-TryBot: Michael Knyszek &lt;mknyszek@google.com&gt;
Reviewed-by: Heschi Kreinick &lt;heschi@google.com&gt;
TryBot-Result: Go Bot &lt;gobot@golang.org&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.16] misc/wasm, cmd/link: do not let command line args overwrite global data</title>
<updated>2021-10-07T14:55:06Z</updated>
<author>
<name>Michael Knyszek</name>
<email>mknyszek@google.com</email>
</author>
<published>2021-09-02T20:51:59Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=4548fcc8dfd933c237f29bba6f90040a85922564'/>
<id>urn:sha1:4548fcc8dfd933c237f29bba6f90040a85922564</id>
<content type='text'>
On Wasm, wasm_exec.js puts command line arguments at the beginning
of the linear memory (following the "zero page"). Currently there
is no limit for this, and a very long command line can overwrite
the program's data section. Prevent this by limiting the command
line to 4096 bytes, and in the linker ensuring the data section
starts at a high enough address (8192).

(Arguably our address assignment on Wasm is a bit confusing. This
is the minimum fix I can come up with.)

Thanks to Ben Lubar for reporting this issue.

Change by Cherry Mui &lt;cherryyz@google.com&gt;.

For #48797
Fixes #48799
Fixes CVE-2021-38297

Change-Id: I0f50fbb2a5b6d0d047e3c134a88988d9133e4ab3
Reviewed-on: https://team-review.git.corp.google.com/c/golang/go-private/+/1205933
Reviewed-by: Roland Shoemaker &lt;bracewell@google.com&gt;
Reviewed-by: Than McIntosh &lt;thanm@google.com&gt;
Reviewed-on: https://go-review.googlesource.com/c/go/+/354591
Trust: Michael Knyszek &lt;mknyszek@google.com&gt;
Reviewed-by: Heschi Kreinick &lt;heschi@google.com&gt;
</content>
</entry>
</feed>
