]> Cypherpunks repositories - gostls13.git/commit
internal/poll: set the correct file offset in FD.Seek for Windows overlapped handles
authorqmuntal <quimmuntal@gmail.com>
Tue, 19 Aug 2025 10:10:54 +0000 (12:10 +0200)
committerQuim Muntal <quimmuntal@gmail.com>
Wed, 20 Aug 2025 17:33:45 +0000 (10:33 -0700)
commit853fc1273912b020e428c77d35e525c9225fd51e
tree8e465ea5d4f6885f357bc07fbdc81d924f1f2600
parentbd885401d5a4b45fee8ae37069be0cc3beef9e3e
internal/poll: set the correct file offset in FD.Seek for Windows overlapped handles

Windows doesn't keep the file pointer for overlapped file handles.
To work around this, we keep track of the current offset ourselves
and use it on every Read/Write operation.

When the user calls File.Seek with whence == io.SeekCurrent, it expects
that the offset we keep track of is also accounted for, else the
the seek'ed value won't match the file pointer seen by the user.

Updates #74951.
Fixes #75081.

Change-Id: Ieca7c3779e5349292883ffc293a8474088a4dec7
Reviewed-on: https://go-review.googlesource.com/c/go/+/697275
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Damien Neil <dneil@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
src/internal/poll/fd_windows.go
src/os/os_windows_test.go