fix(#141): reject non-regular files in validateDocmapPath

Add IsRegular() check after Lstat so directories, FIFOs, and device nodes
produce a clear error ("docmap must be a regular file") instead of a
confusing downstream parse error.

Test: TestValidateDocmapPath_NonRegularFile

Addresses MINOR finding in review #4175.
This commit is contained in:
Rodin
2026-05-15 08:15:14 -07:00
parent 838a34aa12
commit 7adb296523
2 changed files with 32 additions and 0 deletions
+7
View File
@@ -61,6 +61,13 @@ func validateDocmapPath(localPath, resolvedRoot string) error {
return fmt.Errorf("symlinks are not allowed")
}
// Reject anything that is not a regular file (directories, FIFOs, device
// nodes, etc.) — ParseDocMapConfig expects a plain YAML file and would
// produce a confusing error on non-regular entries.
if !fi.Mode().IsRegular() {
return fmt.Errorf("docmap must be a regular file")
}
// Confine to resolvedRoot: use the fully-resolved path so that a directory
// symlink inside the repo cannot carry the path outside the root.
rel, err := filepath.Rel(resolvedRoot, resolvedPath)