]> Cypherpunks repositories - gostls13.git/commit
[release-branch.go1.17] syscall: fix ForkLock spurious close(0) on pipe failure
authorRuss Cox <rsc@golang.org>
Wed, 8 Dec 2021 23:05:11 +0000 (18:05 -0500)
committerFilippo Valsorda <filippo@golang.org>
Thu, 9 Dec 2021 12:28:39 +0000 (12:28 +0000)
commite46abcb816fb20663483f84fe52e370790a99bee
tree183dade1b426a79c0ee0fb6a5267396085d4fa2a
parent61317ef99e015600704ee580a370f356f1bb4a6b
[release-branch.go1.17] syscall: fix ForkLock spurious close(0) on pipe failure

Pipe (and therefore forkLockPipe) does not make any guarantees
about the state of p after a failed Pipe(p). Avoid that assumption
and the too-clever goto, so that we don't accidentally Close a real fd
if the failed pipe leaves p[0] or p[1] set >= 0.

Updates #50057
Fixes CVE-2021-44717

Change-Id: Iff8e19a6efbba0c73cc8b13ecfae381c87600bb4
Reviewed-on: https://team-review.git.corp.google.com/c/golang/go-private/+/1291270
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-on: https://go-review.googlesource.com/c/go/+/370534
Trust: Filippo Valsorda <filippo@golang.org>
Run-TryBot: Filippo Valsorda <filippo@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Alex Rakoczy <alex@golang.org>
src/syscall/exec_unix.go