Skip to content

Commit 2e7bd73

Browse files
authored
fix(search): use root-scoped fallback reads
Clear GoSec G122 by reading token fallback search files through os.OpenRoot while preserving fallback behavior.
1 parent 8ad284d commit 2e7bd73

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

cli/cmd/ao/search.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -559,11 +559,22 @@ func searchMarkdownFilesByTokens(query, dir, resultType string, limit int) []sea
559559
minMatches := searchFallbackMinMatches(len(tokens))
560560

561561
results := make([]searchResult, 0)
562+
root, err := os.OpenRoot(dir)
563+
if err != nil {
564+
VerbosePrintf("token fallback search root error for %s: %v\n", dir, err)
565+
return nil
566+
}
567+
defer root.Close()
568+
562569
if err := filepath.WalkDir(dir, func(path string, entry os.DirEntry, err error) error {
563570
if err != nil || entry.IsDir() || !strings.HasSuffix(entry.Name(), ".md") {
564571
return nil
565572
}
566-
data, err := os.ReadFile(path)
573+
relPath, err := filepath.Rel(dir, path)
574+
if err != nil || relPath == "." || relPath == ".." || strings.HasPrefix(relPath, ".."+string(os.PathSeparator)) {
575+
return nil
576+
}
577+
data, err := root.ReadFile(relPath)
567578
if err != nil {
568579
return nil
569580
}

0 commit comments

Comments
 (0)