mirror of
https://github.com/aquasecurity/trivy.git
synced 2025-12-22 23:26:39 -08:00
Check errors passed through by filepath.Walk (#208)
In several files, the error passed from filepath.Walk to WalkFunc is not checked. As the info argument to WalkFn is nil in case of an error, accessing info can cause a runtime panic. This commit adds checks for errors passed through to WalkFunc.
This commit is contained in:
committed by
Teppei Fukuda
parent
cb1870e7bf
commit
f198b6eb63
@@ -59,6 +59,9 @@ func CloneOrPull(url, repoPath string) (map[string]struct{}, error) {
|
||||
// Need to refresh all vulnerabilities
|
||||
if db.GetVersion() == "" {
|
||||
err = filepath.Walk(repoPath, func(path string, info os.FileInfo, err error) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if info.IsDir() {
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -63,6 +63,9 @@ func (s *Scanner) walk() (AdvisoryDB, error) {
|
||||
|
||||
var vulns []vulnerability.Vulnerability
|
||||
err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if info.IsDir() {
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -59,6 +59,9 @@ func (s *Scanner) walk() (AdvisoryDB, error) {
|
||||
|
||||
var vulns []vulnerability.Vulnerability
|
||||
err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if info.IsDir() {
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -52,6 +52,9 @@ func (s *Scanner) walk() (AdvisoryDB, error) {
|
||||
advisoryDB := AdvisoryDB{}
|
||||
var vulns []vulnerability.Vulnerability
|
||||
err := filepath.Walk(repoPath, func(path string, info os.FileInfo, err error) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if info.IsDir() || !strings.HasPrefix(info.Name(), "CVE-") {
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -56,6 +56,9 @@ func (s *Scanner) walk() (AdvisoryDB, error) {
|
||||
advisoryDB := AdvisoryDB{}
|
||||
var vulns []vulnerability.Vulnerability
|
||||
err := filepath.Walk(filepath.Join(repoPath, "vuln"), func(path string, info os.FileInfo, err error) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if info.IsDir() || !strings.HasSuffix(info.Name(), ".json") {
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -32,6 +32,9 @@ func SetCacheDir(dir string) {
|
||||
|
||||
func FileWalk(root string, targetFiles map[string]struct{}, walkFn func(r io.Reader, path string) error) error {
|
||||
err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if info.IsDir() {
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user