]> Cypherpunks.ru repositories - gostls13.git/commit
os: explicitly check for invalid FD in NewFile
authorMichael Pratt <mpratt@google.com>
Wed, 24 May 2023 15:25:12 +0000 (11:25 -0400)
committerGopher Robot <gobot@golang.org>
Wed, 24 May 2023 20:19:46 +0000 (20:19 +0000)
commita6fb97b6a7f42b8d4cbd8890672ccbf3cf0a929a
tree9f6d20b5e677f356d11d3d725ac56fa31c8441b4
parent83dfe5cf62234427eae04131dc6e4551fd283463
os: explicitly check for invalid FD in NewFile

CL 497075 refactored NewFile to unconditionally dereference the file
returned by newFile. However, newFile can return nil if passed a
negative FD, which now causes a crash.

Resolve this by moving the invalid check earlier in NewFile, which also
lets us avoid a useless fcntl syscall on a negative FD.

Since we convert to int to check sign, adjust newFile to take an int
rather than uintptr, which cleans up a lot of conversions.

Fixes #60406

Change-Id: I382a74e22f1cc01f7a2dcf1ff4efca6a79c4dd57
Reviewed-on: https://go-review.googlesource.com/c/go/+/497877
Run-TryBot: Michael Pratt <mpratt@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
Auto-Submit: Michael Pratt <mpratt@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
src/net/fd_unix.go
src/os/file_unix.go
src/os/os_unix_test.go
src/os/os_windows_test.go
src/os/pipe2_unix.go
src/os/pipe_unix.go
src/os/removeall_at.go