@@ -5,11 +5,13 @@ import (
5
5
"fmt"
6
6
"io"
7
7
"io/fs"
8
+ "path"
8
9
"path/filepath"
9
10
"strings"
10
11
"sync"
11
12
12
13
"github.com/liamg/memoryfs"
14
+ "helm.sh/helm/v3/pkg/chartutil"
13
15
14
16
"github.com/aquasecurity/trivy/pkg/iac/detection"
15
17
"github.com/aquasecurity/trivy/pkg/iac/ignore"
@@ -55,14 +57,14 @@ func (s *Scanner) Name() string {
55
57
return "Helm"
56
58
}
57
59
58
- func (s * Scanner ) ScanFS (ctx context.Context , target fs.FS , path string ) (scan.Results , error ) {
60
+ func (s * Scanner ) ScanFS (ctx context.Context , fsys fs.FS , dir string ) (scan.Results , error ) {
59
61
60
- if err := s .initRegoScanner (target ); err != nil {
62
+ if err := s .initRegoScanner (fsys ); err != nil {
61
63
return nil , fmt .Errorf ("failed to init rego scanner: %w" , err )
62
64
}
63
65
64
66
var results []scan.Result
65
- if err := fs .WalkDir (target , path , func (path string , d fs.DirEntry , err error ) error {
67
+ if err := fs .WalkDir (fsys , dir , func (filePath string , d fs.DirEntry , err error ) error {
66
68
select {
67
69
case <- ctx .Done ():
68
70
return ctx .Err ()
@@ -77,16 +79,14 @@ func (s *Scanner) ScanFS(ctx context.Context, target fs.FS, path string) (scan.R
77
79
return nil
78
80
}
79
81
80
- if detection .IsArchive (path ) {
81
- if scanResults , err := s .getScanResults (path , ctx , target ); err != nil {
82
+ if detection .IsArchive (filePath ) {
83
+ scanResults , err := s .getScanResults (filePath , ctx , fsys )
84
+ if err != nil {
82
85
return err
83
- } else {
84
- results = append (results , scanResults ... )
85
86
}
86
- }
87
-
88
- if strings .HasSuffix (path , "Chart.yaml" ) {
89
- if scanResults , err := s .getScanResults (filepath .Dir (path ), ctx , target ); err != nil {
87
+ results = append (results , scanResults ... )
88
+ } else if path .Base (filePath ) == chartutil .ChartfileName {
89
+ if scanResults , err := s .getScanResults (filepath .Dir (filePath ), ctx , fsys ); err != nil {
90
90
return err
91
91
} else {
92
92
results = append (results , scanResults ... )
0 commit comments