<feed xmlns='http://www.w3.org/2005/Atom'>
<title>go/src/os/exec/exec.go, branch main</title>
<subtitle>Fork of Go programming language with my patches.</subtitle>
<id>http://git.kilabit.info/go/atom?h=main</id>
<link rel='self' href='http://git.kilabit.info/go/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/'/>
<updated>2026-04-14T14:40:47Z</updated>
<entry>
<title>os/exec: doc typo</title>
<updated>2026-04-14T14:40:47Z</updated>
<author>
<name>Weixie Cui</name>
<email>cuiweixie@gmail.com</email>
</author>
<published>2026-04-09T13:42:03Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=3a528855af73ff1e3bd7f5ac8e9374e27f3144f8'/>
<id>urn:sha1:3a528855af73ff1e3bd7f5ac8e9374e27f3144f8</id>
<content type='text'>
Change-Id: I623eee6738a8ebb1db2bc5693a9973c58878260c
GitHub-Last-Rev: d7d918d4ede9d7a374a0a51f569c6890d74c8f91
GitHub-Pull-Request: golang/go#78609
Reviewed-on: https://go-review.googlesource.com/c/go/+/764364
Reviewed-by: Keith Randall &lt;khr@google.com&gt;
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
Reviewed-by: David Chase &lt;drchase@google.com&gt;
Reviewed-by: Sean Liao &lt;sean@liao.dev&gt;
</content>
</entry>
<entry>
<title>os/exec: use argv() to avoid panic inside of Cmd.String()</title>
<updated>2026-04-14T02:04:58Z</updated>
<author>
<name>Neal Patel</name>
<email>nealpatel@google.com</email>
</author>
<published>2026-04-11T16:00:52Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=33241d7298e0c621cfc4cc9f878dba9eff2b1c3d'/>
<id>urn:sha1:33241d7298e0c621cfc4cc9f878dba9eff2b1c3d</id>
<content type='text'>
A surprisingly non-zero amount of direct uses Cmd
make this panic possible.

Change-Id: If86cabfb0f7c0250e2a5aa3fcaba367de5d10ca4
Reviewed-on: https://go-review.googlesource.com/c/go/+/765680
Reviewed-by: Ian Lance Taylor &lt;iant@golang.org&gt;
Auto-Submit: Neal Patel &lt;nealpatel@google.com&gt;
TryBot-Bypass: Nicholas Husin &lt;nsh@golang.org&gt;
Reviewed-by: Carlos Amedee &lt;carlos@golang.org&gt;
Reviewed-by: Nicholas Husin &lt;nsh@golang.org&gt;
Reviewed-by: Keith Randall &lt;khr@google.com&gt;
</content>
</entry>
<entry>
<title>os/exec: document that Cmd.Wait must not be called concurrently</title>
<updated>2026-03-17T18:58:30Z</updated>
<author>
<name>Basavaraj PB</name>
<email>basavarajbankolli76@gmail.com</email>
</author>
<published>2026-03-10T17:58:14Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=ff7ecb4efc2f754709ec018ae822fb411fcfa5a9'/>
<id>urn:sha1:ff7ecb4efc2f754709ec018ae822fb411fcfa5a9</id>
<content type='text'>
Clarify in the Wait documentation that it must not be called
concurrently from multiple goroutines. Also note that a custom
Cmd.Cancel function should not call Wait because Cancel may be
invoked by watchCtx in a separate goroutine.

Fixes #78046

Change-Id: I5c0ebc41bd3c39c78f3b37539c59cdfedfd90e72
Reviewed-on: https://go-review.googlesource.com/c/go/+/753602
Reviewed-by: Ian Lance Taylor &lt;iant@golang.org&gt;
Reviewed-by: Carlos Amedee &lt;carlos@golang.org&gt;
Auto-Submit: Ian Lance Taylor &lt;iant@golang.org&gt;
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
Reviewed-by: Mark Freeman &lt;markfreeman@google.com&gt;
</content>
</entry>
<entry>
<title>os/exec: document blocking Stdin/Stdout/Stderr</title>
<updated>2026-01-27T20:28:35Z</updated>
<author>
<name>Ian Lance Taylor</name>
<email>iant@golang.org</email>
</author>
<published>2026-01-27T04:03:30Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=251f3aa6ee6fc3925fe8e64cd4b403bfa73b93ab'/>
<id>urn:sha1:251f3aa6ee6fc3925fe8e64cd4b403bfa73b93ab</id>
<content type='text'>
WaitDelay only handles writes to Stdin and reads from Stdout/Stderr.
If Stdin is set to a blocking Reader, or Stdout/Stderr are set to
a blocking Writer, Wait can hang indefinitely. I don't see any way to
fix this with the current API, as there is no general way that the
os/exec package can interrupt the blocking Read or Write.

This CL documents the limitation and points people toward the
workaround of using StdinPipe/StdoutPipe/StderrPipe and arranging
for their own way to interrupt the blocking Read or Write.

Fixes #77227

Change-Id: I3150ae7af89dccf8d859b41eb43eaf0bbbb55fee
Reviewed-on: https://go-review.googlesource.com/c/go/+/739422
Reviewed-by: Dmitri Shuralyov &lt;dmitshur@google.com&gt;
Auto-Submit: Ian Lance Taylor &lt;iant@golang.org&gt;
Reviewed-by: Sean Liao &lt;sean@liao.dev&gt;
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
Reviewed-by: Carlos Amedee &lt;carlos@golang.org&gt;
</content>
</entry>
<entry>
<title>os/exec: avoid atomic.Bool for Cmd.startCalled</title>
<updated>2026-01-06T20:26:39Z</updated>
<author>
<name>Alan Donovan</name>
<email>adonovan@google.com</email>
</author>
<published>2026-01-06T19:48:31Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=d1d0fc7a97539206e33f04bac935f6450597137c'/>
<id>urn:sha1:d1d0fc7a97539206e33f04bac935f6450597137c</id>
<content type='text'>
An atomic.Bool isn't necessary here since, unless otherwise
specified, the methods of an object are not concurrency-safe
w.r.t. each other. Using an atomic causes the copylocks vet
check to warn about copying of Cmd, which is not wrong, because
one shouldn't be copying opaque complex structs from other
packages, but it is a nuisance in the absence of any safe way
to copy a Cmd.

If and when we add a Clone method to Cmd (see #77075) then
it would be appropriate to revert this change so that we get
the benefit of the static check (though ideally we would make
a more explicit tool-readable declaration of the "do not copy"
attribute than merely happening to use an atomic.Bool).

For #77075

Change-Id: I982d4e86623ca165a3e76bbf648fd44041d5f6bb
Reviewed-on: https://go-review.googlesource.com/c/go/+/734200
Reviewed-by: Michael Pratt &lt;mpratt@google.com&gt;
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
</content>
</entry>
<entry>
<title>os/exec: second call to Cmd.Start is always an error</title>
<updated>2025-12-22T18:43:07Z</updated>
<author>
<name>Alan Donovan</name>
<email>adonovan@google.com</email>
</author>
<published>2025-12-09T15:06:23Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=3d77a0b15ea2a6d2f7b3e2ba483f148d7c6ee174'/>
<id>urn:sha1:3d77a0b15ea2a6d2f7b3e2ba483f148d7c6ee174</id>
<content type='text'>
Previously it would return an error only if the first call
resulted in process creation, contra the intent of the
comment at exec.Cmd:

// A Cmd cannot be reused after calling its [Cmd.Start], [Cmd.Run],
// [Cmd.Output], or [Cmd.CombinedOutput] methods.

Also, clear the Cmd.goroutines slice in case of failure to
start a process, so that the closures can be GC'd and their
pipe fds finalized and closed.

Fixes #76746

Change-Id: Ic63a4dced0aa52c2d4be7d44f6dcfc84ee22282c
Reviewed-on: https://go-review.googlesource.com/c/go/+/728642
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
Reviewed-by: Damien Neil &lt;dneil@google.com&gt;
</content>
</entry>
<entry>
<title>os/exec: include Cmd.Start in the list of methods that run Cmd</title>
<updated>2025-11-12T15:27:58Z</updated>
<author>
<name>Sean Liao</name>
<email>sean@liao.dev</email>
</author>
<published>2025-11-11T21:08:26Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=65858a146e585b74d41db63f3821d6a150f36d49'/>
<id>urn:sha1:65858a146e585b74d41db63f3821d6a150f36d49</id>
<content type='text'>
Fixes #76265

Change-Id: I451271c5662dd3bcdeec07b55761b15f64c00dcd
Reviewed-on: https://go-review.googlesource.com/c/go/+/719860
Reviewed-by: Keith Randall &lt;khr@golang.org&gt;
Reviewed-by: Alan Donovan &lt;adonovan@google.com&gt;
Auto-Submit: Keith Randall &lt;khr@golang.org&gt;
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
Reviewed-by: Keith Randall &lt;khr@google.com&gt;
</content>
</entry>
<entry>
<title>os/exec: fix incorrect expansion of "", "." and ".." in LookPath</title>
<updated>2025-07-29T20:53:57Z</updated>
<author>
<name>Olivier Mengué</name>
<email>olivier.mengue@gmail.com</email>
</author>
<published>2025-06-30T14:58:59Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=e0b07dc22eaab1b003d98ad6d63cdfacc76c5c70'/>
<id>urn:sha1:e0b07dc22eaab1b003d98ad6d63cdfacc76c5c70</id>
<content type='text'>
Fix incorrect expansion of "" and "." when $PATH contains an executable
file or, on Windows, a parent directory of a %PATH% element contains an
file with the same name as the %PATH% element but with one of the
%PATHEXT% extension (ex: C:\utils\bin is in PATH, and C:\utils\bin.exe
exists).

Fix incorrect expansion of ".." when $PATH contains an element which is
an the concatenation of the path to an executable file (or on Windows
a path that can be expanded to an executable by appending a %PATHEXT%
extension), a path separator and a name.

"", "." and ".." are now rejected early with ErrNotFound.

Fixes CVE-2025-47906
Fixes #74466

Change-Id: Ie50cc0a660fce8fbdc952a7f2e05c36062dcb50e
Reviewed-on: https://go-review.googlesource.com/c/go/+/685755
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
Auto-Submit: Damien Neil &lt;dneil@google.com&gt;
Reviewed-by: Roland Shoemaker &lt;roland@golang.org&gt;
Reviewed-by: Damien Neil &lt;dneil@google.com&gt;
</content>
</entry>
<entry>
<title>all: replace a few user-visible mentions of golang.org and godoc.org</title>
<updated>2025-06-13T06:27:10Z</updated>
<author>
<name>Alberto Donizetti</name>
<email>alb.donizetti@gmail.com</email>
</author>
<published>2025-06-12T08:19:28Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=9149876112facc113d77d2c65e1590184c57d0c2'/>
<id>urn:sha1:9149876112facc113d77d2c65e1590184c57d0c2</id>
<content type='text'>
This change replaces a few user-visible mentions of golang.org and
godoc.org with go.dev and pkg.go.dev, respectively. Non-user-visible
mentions (e.g. in test scripts) were left untouched.

Change-Id: I5d828edcd618b6c55243d0dfcadc6fa1ce9422ce
Reviewed-on: https://go-review.googlesource.com/c/go/+/681255
Reviewed-by: Cherry Mui &lt;cherryyz@google.com&gt;
Reviewed-by: Dmitri Shuralyov &lt;dmitshur@golang.org&gt;
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
Reviewed-by: Dmitri Shuralyov &lt;dmitshur@google.com&gt;
</content>
</entry>
<entry>
<title>os/exec: edit comment to remove invalid link</title>
<updated>2024-11-27T15:22:17Z</updated>
<author>
<name>Adam Bender</name>
<email>abender@gmail.com</email>
</author>
<published>2024-11-26T01:52:25Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=7e0950861703c93ea3e7f122c1c594851919261e'/>
<id>urn:sha1:7e0950861703c93ea3e7f122c1c594851919261e</id>
<content type='text'>
Update comment to remove link formatting that doesn't turn into a link, because the target field is not a top-level member of the package. Re-word comment slightly.

Change-Id: I43ebd8fb105b772a4362c0c763e6464321a92747
Reviewed-on: https://go-review.googlesource.com/c/go/+/631856
Reviewed-by: Veronica Silina &lt;veronicasilina@google.com&gt;
Reviewed-by: Ian Lance Taylor &lt;iant@google.com&gt;
Auto-Submit: Ian Lance Taylor &lt;iant@google.com&gt;
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
</content>
</entry>
</feed>
