Merge pull request #28723 from SebTardif/fix/close-directory-handle-registries-d

pkg/trust: fix directory handle leak in loadAndMergeConfig
This commit is contained in:
Brent Baude
2026-05-19 15:58:39 -05:00
committed by GitHub
2 changed files with 30 additions and 0 deletions

View File

@@ -63,6 +63,7 @@ func loadAndMergeConfig(dirPath string) (*registryConfiguration, error) {
}
return nil, err
}
defer dir.Close()
configNames, err := dir.Readdirnames(0)
if err != nil {
return nil, err

View File

@@ -0,0 +1,29 @@
package trust
import (
"path/filepath"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestLoadAndMergeConfig(t *testing.T) {
// Non-existent directory returns empty config without error.
config, err := loadAndMergeConfig(filepath.Join(t.TempDir(), "nonexistent"))
require.NoError(t, err)
assert.Empty(t, config.Docker)
assert.Nil(t, config.DefaultDocker)
// Empty directory returns empty config.
emptyDir := t.TempDir()
config, err = loadAndMergeConfig(emptyDir)
require.NoError(t, err)
assert.Empty(t, config.Docker)
assert.Nil(t, config.DefaultDocker)
// Existing testdata directory returns valid config.
config, err = loadAndMergeConfig("./testdata")
require.NoError(t, err)
assert.NotEmpty(t, config.Docker)
}