<feed xmlns='http://www.w3.org/2005/Atom'>
<title>go, branch go1.18.9</title>
<subtitle>Fork of Go programming language with my patches.</subtitle>
<id>http://git.kilabit.info/go/atom?h=go1.18.9</id>
<link rel='self' href='http://git.kilabit.info/go/atom?h=go1.18.9'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/'/>
<updated>2022-12-06T19:30:49Z</updated>
<entry>
<title>[release-branch.go1.18] go1.18.9</title>
<updated>2022-12-06T19:30:49Z</updated>
<author>
<name>Gopher Robot</name>
<email>gobot@golang.org</email>
</author>
<published>2022-12-06T19:01:34Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=0d8a92bdfd3d6d1b24f47e05f9be46645aec94f0'/>
<id>urn:sha1:0d8a92bdfd3d6d1b24f47e05f9be46645aec94f0</id>
<content type='text'>
Change-Id: Ida61e740fc342357f54e523c0044cf6d83e0baec
Reviewed-on: https://go-review.googlesource.com/c/go/+/455597
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
Reviewed-by: Michael Pratt &lt;mpratt@google.com&gt;
Reviewed-by: Jenny Rakoczy &lt;jenny@golang.org&gt;
Run-TryBot: Gopher Robot &lt;gobot@golang.org&gt;
Auto-Submit: Gopher Robot &lt;gobot@golang.org&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.18] net/http: update bundled golang.org/x/net/http2</title>
<updated>2022-12-06T19:00:28Z</updated>
<author>
<name>Damien Neil</name>
<email>dneil@google.com</email>
</author>
<published>2022-11-30T21:37:07Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=76cad4edc29d28432a7a0aa27e87385d3d7db7a1'/>
<id>urn:sha1:76cad4edc29d28432a7a0aa27e87385d3d7db7a1</id>
<content type='text'>
Disable cmd/internal/moddeps test, since this update includes PRIVATE
track fixes.

For #56350
For #57008
Fixes CVE-2022-41717

Change-Id: I31ebd2b9ae190ef6f7646187103ea1c8a713ff2e
Reviewed-on: https://team-review.git.corp.google.com/c/golang/go-private/+/1663833
Reviewed-by: Tatiana Bradley &lt;tatianabradley@google.com&gt;
Reviewed-by: Julie Qiu &lt;julieqiu@google.com&gt;
Reviewed-on: https://go-review.googlesource.com/c/go/+/455361
Run-TryBot: Jenny Rakoczy &lt;jenny@golang.org&gt;
Reviewed-by: Michael Pratt &lt;mpratt@google.com&gt;
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.18] os, net/http: avoid escapes from os.DirFS and http.Dir on Windows</title>
<updated>2022-12-06T19:00:21Z</updated>
<author>
<name>Damien Neil</name>
<email>dneil@google.com</email>
</author>
<published>2022-11-10T20:16:27Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=7013a4f5f816af62033ad63dd06b77c30d7a62a7'/>
<id>urn:sha1:7013a4f5f816af62033ad63dd06b77c30d7a62a7</id>
<content type='text'>
Do not permit access to Windows reserved device names (NUL, COM1, etc.)
via os.DirFS and http.Dir filesystems.

Avoid escapes from os.DirFS(`\`) on Windows. DirFS would join the
the root to the relative path with a path separator, making
os.DirFS(`\`).Open(`/foo/bar`) open the path `\\foo\bar`, which is
a UNC name. Not only does this not open the intended file, but permits
reference to any file on the system rather than only files on the
current drive.

Make os.DirFS("") invalid, with all file access failing. Previously,
a root of "" was interpreted as "/", which is surprising and probably
unintentional.

Fixes CVE-2022-41720.
Fixes #56694.

Change-Id: I275b5fa391e6ad7404309ea98ccc97405942e0f0
Reviewed-on: https://team-review.git.corp.google.com/c/golang/go-private/+/1663832
Reviewed-by: Julie Qiu &lt;julieqiu@google.com&gt;
Reviewed-by: Tatiana Bradley &lt;tatianabradley@google.com&gt;
Reviewed-on: https://go-review.googlesource.com/c/go/+/455360
Reviewed-by: Michael Pratt &lt;mpratt@google.com&gt;
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
Run-TryBot: Jenny Rakoczy &lt;jenny@golang.org&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.18] cmd/cgo: recognize clang 14 DWARF type names</title>
<updated>2022-12-01T15:59:04Z</updated>
<author>
<name>Dmitri Goutnik</name>
<email>dgoutnik@gmail.com</email>
</author>
<published>2022-05-20T13:07:03Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=e727f41930ae9a8bedfbc85eb8ca7268486571ec'/>
<id>urn:sha1:e727f41930ae9a8bedfbc85eb8ca7268486571ec</id>
<content type='text'>
Fixes #57028
Updates #53013

Change-Id: I169d4eb2420a6da52cc9abe17da98c3092a91be6
Reviewed-on: https://go-review.googlesource.com/c/go/+/407514
Auto-Submit: Ian Lance Taylor &lt;iant@google.com&gt;
Reviewed-by: Cherry Mui &lt;cherryyz@google.com&gt;
Reviewed-by: Ian Lance Taylor &lt;iant@google.com&gt;
Run-TryBot: Ian Lance Taylor &lt;iant@google.com&gt;
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
(cherry picked from commit 2cfbef438049fd4c3f73d1562773ad1f93900897)
Reviewed-on: https://go-review.googlesource.com/c/go/+/454415
Reviewed-by: Dmitri Shuralyov &lt;dmitshur@google.com&gt;
Run-TryBot: Heschi Kreinick &lt;heschi@google.com&gt;
Reviewed-by: Dmitri Shuralyov &lt;dmitshur@golang.org&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.18] runtime: make GC see object as allocated after it is initialized</title>
<updated>2022-11-25T02:37:05Z</updated>
<author>
<name>Cherry Mui</name>
<email>cherryyz@google.com</email>
</author>
<published>2022-11-09T15:55:54Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=3115ed23bdaa3dcc465feba4100da40c2d22f964'/>
<id>urn:sha1:3115ed23bdaa3dcc465feba4100da40c2d22f964</id>
<content type='text'>
When the GC is scanning some memory (possibly conservatively),
finding a pointer, while concurrently another goroutine is
allocating an object at the same address as the found pointer, the
GC may see the pointer before the object and/or the heap bits are
initialized. This may cause the GC to see bad pointers and
possibly crash.

To prevent this, we make it that the scanner can only see the
object as allocated after the object and the heap bits are
initialized. Currently the allocator uses freeindex to find the
next available slot, and that code is coupled with updating the
free index to a new slot past it. The scanner also uses the
freeindex to determine if an object is allocated. This is somewhat
racy. This CL makes the scanner use a different field, which is
only updated after the object initialization (and a memory
barrier).

Updates #54596.
Fixes #56751.

Change-Id: I2a57a226369926e7192c253dd0d21d3faf22297c
Reviewed-on: https://go-review.googlesource.com/c/go/+/449017
Reviewed-by: Austin Clements &lt;austin@google.com&gt;
Reviewed-by: Michael Knyszek &lt;mknyszek@google.com&gt;
Run-TryBot: Cherry Mui &lt;cherryyz@google.com&gt;
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
(cherry picked from commit febe7b8e2a4dd7cce6ab8d02cf79a5430819cbe5)
Reviewed-on: https://go-review.googlesource.com/c/go/+/453255
</content>
</entry>
<entry>
<title>[release-branch.go1.18] net: disable TestLookupDotsWithRemoteSource and TestLookupGoogleSRV</title>
<updated>2022-11-11T21:32:34Z</updated>
<author>
<name>Michael Anthony Knyszek</name>
<email>mknyszek@google.com</email>
</author>
<published>2022-11-11T17:26:45Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=d96e584773bf0577a4da2ffc9543111ddd80627c'/>
<id>urn:sha1:d96e584773bf0577a4da2ffc9543111ddd80627c</id>
<content type='text'>
These tests fail consistently due to a DNS change causing widespread
trybot outages.

For #56707.
Fixes #56709.

Change-Id: Iebdf91254a922a48880021198f0f12f6bc16b6e7
Reviewed-on: https://go-review.googlesource.com/c/go/+/449640
Reviewed-by: Carlos Amedee &lt;carlos@golang.org&gt;
Reviewed-by: Bryan Mills &lt;bcmills@google.com&gt;
Run-TryBot: Michael Knyszek &lt;mknyszek@google.com&gt;
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
Reviewed-by: Damien Neil &lt;dneil@google.com&gt;
(cherry picked from commit 97765249082b6835c77517a4e63bb38cfd6db97b)
Reviewed-on: https://go-review.googlesource.com/c/go/+/449505
Reviewed-by: Ian Lance Taylor &lt;iant@google.com&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.18] runtime: don't jump stack if at entry of systemstack</title>
<updated>2022-11-09T18:44:47Z</updated>
<author>
<name>Cherry Mui</name>
<email>cherryyz@google.com</email>
</author>
<published>2022-09-30T23:01:09Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=a3dce1276887df0de970cac8524b822c092ab39f'/>
<id>urn:sha1:a3dce1276887df0de970cac8524b822c092ab39f</id>
<content type='text'>
The traceback code has special "jump stack" logic, to trace back
stack switches through systemstack. If we're at the entry of
systemstack, the stack switch hasn't happened, so don't jump to
user stack.

The jump stack logic is only used if we're on the g0 stack. It can
happen that we're at the entry of a recursive systemstack call on
the g0 stack. In we jump stack here, there will be two problems:
1. There are frames between entering the g0 stack and this
   recursive systemstack call. Those frames will be lost.
2. Worse, we switched frame.sp but frame.fp calculation will use
   the entry SP delta (0), which will be wrong, which in turn
   leads wrong frame.lr and things will go off.

For now, don't jump stack if we're at entry of systemstack (SP
delta is 0).

Using a per-PC SPWRITE marker may be a better fix. If we haven't
written the SP, we haven't switched the stack so we can just
unwind like a normal function.

Updates #55851.
Fixes #56635.

Change-Id: I2b624c8c086b235b34d9c7d3cebd4a37264f00f8
Reviewed-on: https://go-review.googlesource.com/c/go/+/437299
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
Run-TryBot: Cherry Mui &lt;cherryyz@google.com&gt;
Reviewed-by: Michael Pratt &lt;mpratt@google.com&gt;
(cherry picked from commit 500bc6b8056ee2eaf7640610a48ffa00bdd896a5)
Reviewed-on: https://go-review.googlesource.com/c/go/+/448517
</content>
</entry>
<entry>
<title>[release-branch.go1.18] cmd/compile: allow ineffectual //go:linkname in -lang=go1.17 and older</title>
<updated>2022-11-09T18:44:17Z</updated>
<author>
<name>Matthew Dempsky</name>
<email>mdempsky@google.com</email>
</author>
<published>2022-11-03T18:56:43Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=d2a7a180d38d4a51eb5d8f86bb71bed0ecee09ce'/>
<id>urn:sha1:d2a7a180d38d4a51eb5d8f86bb71bed0ecee09ce</id>
<content type='text'>
Prior to Go 1.18, ineffectual //go:linkname directives (i.e.,
directives referring to an undeclared name, or to a declared type or
constant) were treated as noops. In Go 1.18, we changed this into a
compiler error to mitigate accidental misuse.

However, the x/sys repo contained ineffectual //go:linkname directives
up until go.dev/cl/274573, which has caused a lot of user confusion.

It seems a bit late to worry about now, but to at least prevent
further user pain, this CL changes the error message to only apply to
modules using "go 1.18" or newer. (The x/sys repo declared "go 1.12"
at the time go.dev/cl/274573 was submitted.)

For #55889.
Fixes #56556.

Change-Id: Id762fff96fd13ba0f1e696929a9e276dfcba2620
Reviewed-on: https://go-review.googlesource.com/c/go/+/447755
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
Run-TryBot: Matthew Dempsky &lt;mdempsky@google.com&gt;
Reviewed-by: Bryan Mills &lt;bcmills@google.com&gt;
Reviewed-on: https://go-review.googlesource.com/c/go/+/447815
</content>
</entry>
<entry>
<title>[release-branch.go1.18] os/exec: allow NUL in environment variables on Plan 9</title>
<updated>2022-11-09T18:43:54Z</updated>
<author>
<name>Matthew Dempsky</name>
<email>mdempsky@google.com</email>
</author>
<published>2022-11-03T18:02:51Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=ca571803a87968b280d74b03cbc820ecf68e069d'/>
<id>urn:sha1:ca571803a87968b280d74b03cbc820ecf68e069d</id>
<content type='text'>
Plan 9 uses NUL as os.PathListSeparator, so it's almost always going
to appear in the environment variable list. Exempt GOOS=plan9 from the
check for NUL in environment variables.

For #56284.
For #56544.
Fixes #56550.

Change-Id: I23df233cdf20c0a9a606fd9253e15a9b5482575a
Reviewed-on: https://go-review.googlesource.com/c/go/+/447715
Reviewed-by: David du Colombier &lt;0intro@gmail.com&gt;
Run-TryBot: Matthew Dempsky &lt;mdempsky@google.com&gt;
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
Reviewed-by: Damien Neil &lt;dneil@google.com&gt;
Reviewed-on: https://go-review.googlesource.com/c/go/+/447875
Run-TryBot: David du Colombier &lt;0intro@gmail.com&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.18] cmd/compile: copy blank parameter node when substituting function type</title>
<updated>2022-11-08T18:44:13Z</updated>
<author>
<name>Cherry Mui</name>
<email>cherryyz@google.com</email>
</author>
<published>2022-10-14T23:52:00Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=d9c62ce86a3fd42704f3804d3e31157c57b1f7b3'/>
<id>urn:sha1:d9c62ce86a3fd42704f3804d3e31157c57b1f7b3</id>
<content type='text'>
When a function type is copied (e.g. for substituting type
parameters), we make copies of its parameter ir.Name nodes, so
they are not shared with the old function type. But currently a
blank (_) identifier is not copied but shared. The parameter
node's frame offset is assigned (in ABI analysis) and then used in
the concurrent backend. Shared node can cause a data race. Make a
new blank parameter node to avoid sharing. (Unified IR does already
not have this problem. This fixes non-unified-IR mode.)

Updates #55357.
Fixes #56359.

Change-Id: Ie27f08e5589ac7d5d3f0d0d5de1a21e4fd2765c9
Reviewed-on: https://go-review.googlesource.com/c/go/+/443158
Reviewed-by: Keith Randall &lt;khr@golang.org&gt;
Run-TryBot: Cherry Mui &lt;cherryyz@google.com&gt;
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
Reviewed-by: Keith Randall &lt;khr@google.com&gt;
(cherry picked from commit 4725c71b735143a138b24f2b0e055c717d8d69ca)
Reviewed-on: https://go-review.googlesource.com/c/go/+/445177
</content>
</entry>
</feed>
