Skip to content

Commit 6ef4d68

Browse files
authored
Merge pull request #28723 from SebTardif/fix/close-directory-handle-registries-d
pkg/trust: fix directory handle leak in loadAndMergeConfig
2 parents 3c4fb92 + 39e5a0a commit 6ef4d68

2 files changed

Lines changed: 30 additions & 0 deletions

File tree

pkg/trust/registries.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ func loadAndMergeConfig(dirPath string) (*registryConfiguration, error) {
6363
}
6464
return nil, err
6565
}
66+
defer dir.Close()
6667
configNames, err := dir.Readdirnames(0)
6768
if err != nil {
6869
return nil, err

pkg/trust/registries_test.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package trust
2+
3+
import (
4+
"path/filepath"
5+
"testing"
6+
7+
"github.com/stretchr/testify/assert"
8+
"github.com/stretchr/testify/require"
9+
)
10+
11+
func TestLoadAndMergeConfig(t *testing.T) {
12+
// Non-existent directory returns empty config without error.
13+
config, err := loadAndMergeConfig(filepath.Join(t.TempDir(), "nonexistent"))
14+
require.NoError(t, err)
15+
assert.Empty(t, config.Docker)
16+
assert.Nil(t, config.DefaultDocker)
17+
18+
// Empty directory returns empty config.
19+
emptyDir := t.TempDir()
20+
config, err = loadAndMergeConfig(emptyDir)
21+
require.NoError(t, err)
22+
assert.Empty(t, config.Docker)
23+
assert.Nil(t, config.DefaultDocker)
24+
25+
// Existing testdata directory returns valid config.
26+
config, err = loadAndMergeConfig("./testdata")
27+
require.NoError(t, err)
28+
assert.NotEmpty(t, config.Docker)
29+
}

0 commit comments

Comments
 (0)