Skip to content

Commit b5ef214

Browse files
committed
Don't silently fail FS() on bad directory
Signed-off-by: Tamal Saha <tamal@appscode.com>
1 parent ae8fcd2 commit b5ef214

4 files changed

Lines changed: 17 additions & 6 deletions

File tree

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ require (
1818
golang.org/x/net v0.55.0
1919
gomodules.xyz/encoding v0.0.8
2020
gomodules.xyz/jsonpath v0.0.2
21-
gomodules.xyz/x v0.0.17
21+
gomodules.xyz/x v0.0.18
2222
gopkg.in/yaml.v2 v2.4.0
2323
k8s.io/api v0.34.3
2424
k8s.io/apiextensions-apiserver v0.34.3

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -292,8 +292,8 @@ gomodules.xyz/sets v0.2.1 h1:vK3oUWoGVrZKLDKO/bzEo/ucHFdCE7+DxWPeWxK72KQ=
292292
gomodules.xyz/sets v0.2.1/go.mod h1:jKgNp01/iDs+svOWXaPk5cKP3VXy0mWUoTF/ore+aMc=
293293
gomodules.xyz/testing v0.0.4 h1:XGKt4B64mBe7P9kPR0Rz1nCQpWoSpBEFdTGkfU1RLe4=
294294
gomodules.xyz/testing v0.0.4/go.mod h1:hD6aXtv9eVycPwS01zv+QTl5BrK2DXQgr6bHqnrW+44=
295-
gomodules.xyz/x v0.0.17 h1:Ik3wf0suCMiYPY0miFUh+q8BpjsUHc/7zvANbFViBQA=
296-
gomodules.xyz/x v0.0.17/go.mod h1:7R5182LvgWj1ZGlnpbhfSLsxM3lFN7LBettztpX+A2I=
295+
gomodules.xyz/x v0.0.18 h1:Hm4YKg32VYJmFOKpV4mLIPXEpkDFVIso3AhJC/ME9oc=
296+
gomodules.xyz/x v0.0.18/go.mod h1:lhsalLjQeL2ce489fu7xEVcR5nowKgltuvnXLGgUAdc=
297297
google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
298298
google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
299299
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

vendor/gomodules.xyz/x/ioutil/reloader.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"embed"
66
iofs "io/fs"
77
"os"
8+
"path/filepath"
89
)
910

1011
const (
@@ -31,7 +32,17 @@ func NewReloader(dir string, fs embed.FS, loadFn func(fsys iofs.FS)) *Reloader {
3132
}
3233

3334
func (r *Reloader) FS() iofs.FS {
34-
if fi, err := os.Stat(r.dir); os.IsNotExist(err) || !fi.IsDir() {
35+
// Fall back to the embedded FS unless the override directory exists.
36+
// Guard against every stat error (not just IsNotExist) so a nil FileInfo
37+
// is never dereferenced.
38+
if fi, err := os.Stat(r.dir); err != nil || !fi.IsDir() {
39+
return r.fs
40+
}
41+
// Only adopt the override directory once it has been fully populated,
42+
// signaled by the presence of the trigger file. Without this check an
43+
// empty or partially-written directory (e.g. a stale leftover) would
44+
// silently shadow the embedded FS and load nothing.
45+
if _, err := os.Stat(filepath.Join(r.dir, TriggerFile)); err != nil {
3546
return r.fs
3647
}
3748
return os.DirFS(r.dir)

vendor/modules.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -386,8 +386,8 @@ gomodules.xyz/pointer
386386
# gomodules.xyz/sets v0.2.1
387387
## explicit; go 1.14
388388
gomodules.xyz/sets
389-
# gomodules.xyz/x v0.0.17
390-
## explicit; go 1.22.0
389+
# gomodules.xyz/x v0.0.18
390+
## explicit; go 1.25.0
391391
gomodules.xyz/x/ioutil
392392
gomodules.xyz/x/version
393393
# google.golang.org/protobuf v1.36.6

0 commit comments

Comments
 (0)