os: Use a uintptr for NewFile

This appears to have been how it is upstream for about 10 years. Using
an interface breaks if a file descriptor number is passed directly to
`NewFile`, e.g., `NewFile(3, "fuzz_in")` as used in Go 1.18 fuzzing
code.
This commit is contained in:
Elliott Sales de Andrade
2022-02-06 18:23:29 -05:00
committed by Ayke
parent bf23839931
commit a680bfbb7a
5 changed files with 19 additions and 25 deletions
+4 -4
View File
@@ -38,8 +38,8 @@ type file struct {
dirinfo *dirInfo // nil unless directory being read
}
func NewFile(fd FileHandle, name string) *File {
return &File{&file{fd, name, nil}}
func NewFile(fd uintptr, name string) *File {
return &File{&file{unixFileHandle(fd), name, nil}}
}
func Pipe() (r *File, w *File, err error) {
@@ -48,8 +48,8 @@ func Pipe() (r *File, w *File, err error) {
if err != nil {
return
}
r = NewFile(unixFileHandle(p[0]), "|0")
w = NewFile(unixFileHandle(p[1]), "|1")
r = NewFile(uintptr(p[0]), "|0")
w = NewFile(uintptr(p[1]), "|1")
return
}