mirror of
https://github.com/golang/go.git
synced 2026-02-07 02:09:55 +00:00
net: fix socket duplication error handling on Windows
Calls to dupSocket may fail, but the error is not properly handled because the surrounding code incorrectly checks for nil error instead of non-nil error. I'm not aware of any code paths that would trigger this error, and I haven't been able to create a test case that does so, but this change fixes the error handling to correctly propagate any errors from dupSocket. Change-Id: I5ffd3cbe8ed58a83634f3b97c0878a7c73e0505e Reviewed-on: https://go-review.googlesource.com/c/go/+/734821 Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Damien Neil <dneil@google.com>
This commit is contained in:
parent
30d0b40264
commit
cbe153806e
2 changed files with 2 additions and 2 deletions
|
|
@ -248,7 +248,7 @@ func (fd *netFD) dup() (*os.File, error) {
|
|||
err := fd.pfd.RawControl(func(fd uintptr) {
|
||||
h, syserr = dupSocket(syscall.Handle(fd))
|
||||
})
|
||||
if err != nil {
|
||||
if err == nil {
|
||||
err = syserr
|
||||
}
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ func dupFileSocket(f *os.File) (syscall.Handle, error) {
|
|||
err = sc.Control(func(fd uintptr) {
|
||||
h, syserr = dupSocket(syscall.Handle(fd))
|
||||
})
|
||||
if err != nil {
|
||||
if err == nil {
|
||||
err = syserr
|
||||
}
|
||||
if err != nil {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue