Reject non-regular explicit config files

This commit is contained in:
Brandon McGinty (chatgpt)
2026-08-09 23:11:31 -04:00
committed by Brandon McGinty
parent 6da5b249f9
commit b23afebdb3
2 changed files with 12 additions and 2 deletions
+2 -2
View File
@@ -364,8 +364,8 @@ func RequireConfigFile(fn string) error {
if err != nil { if err != nil {
return fmt.Errorf("config file %q: %w", path, err) return fmt.Errorf("config file %q: %w", path, err)
} }
if info.IsDir() { if !info.Mode().IsRegular() {
return fmt.Errorf("config file %q is a directory", path) return fmt.Errorf("config file %q is not a regular file", path)
} }
return nil return nil
} }
+10
View File
@@ -17,6 +17,16 @@ func TestRequireConfigFileRejectsMissingExplicitPath(t *testing.T) {
} }
} }
func TestRequireConfigFileRejectsNonRegularFile(t *testing.T) {
path := filepath.Join(t.TempDir(), "config.fifo")
if err := os.Mkdir(path, 0700); err != nil {
t.Fatal(err)
}
if err := RequireConfigFile(path); err == nil {
t.Fatal("directory was accepted as an explicit config file")
}
}
func TestConfigBackfillsRecordingDefaults(t *testing.T) { func TestConfigBackfillsRecordingDefaults(t *testing.T) {
dir := t.TempDir() dir := t.TempDir()
configPath := filepath.Join(dir, "barnard.toml") configPath := filepath.Join(dir, "barnard.toml")