Skip to content

Commit 4da338d

Browse files
committed
refactor: stick with saving as config map s not holding pointers
1 parent 51f17eb commit 4da338d

2 files changed

Lines changed: 17 additions & 21 deletions

File tree

pkg/osvscanner/configs.go

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66
"github.com/ossf/osv-schema/bindings/go/osvschema"
77
)
88

9-
func addVulnConfigIgnores(vulnResults *models.VulnerabilityResults, manager *config.Manager) {
9+
func addVulnConfigIgnoresAndSave(vulnResults *models.VulnerabilityResults, manager *config.Manager) error {
1010
configVulns := make(map[string][]*osvschema.Vulnerability)
1111
configPaths := make(map[string]config.Config)
1212

@@ -31,26 +31,20 @@ func addVulnConfigIgnores(vulnResults *models.VulnerabilityResults, manager *con
3131
c := configPaths[p]
3232

3333
c.IgnoreVulns(vulns)
34-
}
35-
}
36-
37-
func removeAllUnusedConfigIgnores(manager *config.Manager) {
38-
if manager.OverrideConfig != nil {
39-
manager.OverrideConfig.RemoveUnusedIgnores()
40-
}
4134

42-
for _, c := range manager.ConfigMap {
43-
// skip the default config
44-
if c.LoadPath == "" {
45-
continue
35+
err := c.Save()
36+
if err != nil {
37+
return err
4638
}
47-
48-
c.RemoveUnusedIgnores()
4939
}
40+
41+
return nil
5042
}
5143

52-
func saveAllConfigs(manager *config.Manager) error {
44+
func removeAllUnusedConfigIgnoresAndSave(manager *config.Manager) error {
5345
if manager.OverrideConfig != nil {
46+
manager.OverrideConfig.RemoveUnusedIgnores()
47+
5448
err := manager.OverrideConfig.Save()
5549
if err != nil {
5650
return err
@@ -63,6 +57,8 @@ func saveAllConfigs(manager *config.Manager) error {
6357
continue
6458
}
6559

60+
c.RemoveUnusedIgnores()
61+
6662
err := c.Save()
6763
if err != nil {
6864
return err

pkg/osvscanner/osvscanner.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,11 @@ func finalizeScanResult(scanResult results.ScanResults, actions ScannerActions)
421421
// - c: filtering removes vulns from results, so need to account for that
422422
if actions.UpdateConfigIgnores == "all" {
423423
// todo: add output about having ignored vulns
424-
addVulnConfigIgnores(&vulnerabilityResults, &scanResult.ConfigManager)
424+
err := addVulnConfigIgnoresAndSave(&vulnerabilityResults, &scanResult.ConfigManager)
425+
426+
if err != nil {
427+
return models.VulnerabilityResults{}, err
428+
}
425429
}
426430

427431
filtered := filterResults(&vulnerabilityResults, &scanResult.ConfigManager, actions.ShowAllPackages)
@@ -435,11 +439,7 @@ func finalizeScanResult(scanResult results.ScanResults, actions ScannerActions)
435439

436440
if actions.UpdateConfigIgnores == "unused" {
437441
// todo: add output about having ignored vulns
438-
removeAllUnusedConfigIgnores(&scanResult.ConfigManager)
439-
}
440-
441-
if actions.UpdateConfigIgnores != "" && actions.UpdateConfigIgnores != "none" {
442-
err := saveAllConfigs(&scanResult.ConfigManager)
442+
err := removeAllUnusedConfigIgnoresAndSave(&scanResult.ConfigManager)
443443

444444
if err != nil {
445445
return models.VulnerabilityResults{}, err

0 commit comments

Comments
 (0)