]> Cypherpunks.ru repositories - gostls13.git/commitdiff
time: return ENOENT instead of ERROR_PATH_NOT_FOUND in windows
authorrlanhellas <ronaldo.lanhellas@gmail.com>
Mon, 31 Jan 2022 22:47:42 +0000 (22:47 +0000)
committerGopher Robot <gobot@golang.org>
Sun, 8 May 2022 17:19:07 +0000 (17:19 +0000)
When using windows some users got a weird error (File not found) when the timezone database is not found. It happens because some methods in the time package don't treat ERROR_PATH_NOT_FOUND and ENOTDIR. To solve it was added a conversion to ENOTENT error.

Fixes #50248

Change-Id: I11c84cf409e01eafb932aea43c7293c8218259b8
GitHub-Last-Rev: fe7fff90cbea06c4af41e5b2ecadea0d409e2c05
GitHub-Pull-Request: golang/go#50906
Reviewed-on: https://go-review.googlesource.com/c/go/+/381957
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>

src/time/sys_windows.go

index 481aea562e8b2e26b01ee0a63ccfa965fc803fec..78e182d4c5f59c7a2c1d738d797858c34d417276 100644 (file)
@@ -16,6 +16,10 @@ func interrupt() {
 func open(name string) (uintptr, error) {
        fd, err := syscall.Open(name, syscall.O_RDONLY, 0)
        if err != nil {
+               // This condition solves issue https://go.dev/issue/50248
+               if err == syscall.ERROR_PATH_NOT_FOUND {
+                       err = syscall.ENOENT
+               }
                return 0, err
        }
        return uintptr(fd), nil