@@ -73,18 +73,21 @@ func AppendVulnsToJson(cmdResults *results.SecurityCommandResults) error {
73
73
fileName := getScaScanFileName (cmdResults )
74
74
fileContent , err := os .ReadFile (fileName )
75
75
if err != nil {
76
- fmt .Println ("Error reading file:" , err )
77
- return err
76
+ return fmt .Errorf ("error reading file: %s" , err .Error ())
78
77
}
79
78
var data map [string ]interface {}
80
79
err = json .Unmarshal (fileContent , & data )
81
80
if err != nil {
82
- fmt .Println ("Error parsing XML:" , err )
83
- return err
81
+ return fmt .Errorf ("error parsing JSON: %s" , err .Error ())
84
82
}
85
83
var vulnerabilities []map [string ]string
86
- xrayResults := cmdResults .GetScaScansXrayResults ()[0 ]
87
- for _ , vuln := range xrayResults .Vulnerabilities {
84
+ xrayResults := cmdResults .GetScaScansXrayResults ()
85
+ if len (xrayResults ) == 0 {
86
+ return fmt .Errorf ("failed while getting sca scan from xray: %s" , err .Error ())
87
+ } else if len (xrayResults ) > 1 {
88
+ log .Warn ("Received %d results, parsing only first result" , len (xrayResults ))
89
+ }
90
+ for _ , vuln := range xrayResults [0 ].Vulnerabilities {
88
91
for component := range vuln .Components {
89
92
vulnerability := map [string ]string {"bom-ref" : component , "id" : vuln .Cves [0 ].Id }
90
93
vulnerabilities = append (vulnerabilities , vulnerability )
@@ -102,9 +105,14 @@ func AppendVulnsToXML(cmdResults *results.SecurityCommandResults) error {
102
105
return err
103
106
}
104
107
destination := result .FindElements ("//bom" )[0 ]
105
- xrayResults := cmdResults .GetScaScansXrayResults ()[0 ]
108
+ xrayResults := cmdResults .GetScaScansXrayResults ()
109
+ if len (xrayResults ) == 0 {
110
+ return fmt .Errorf ("failed while getting sca scan from xray: %s" , err .Error ())
111
+ } else if len (xrayResults ) > 1 {
112
+ log .Warn ("Received %d results, parsing only first result" , len (xrayResults ))
113
+ }
106
114
vulns := destination .CreateElement ("vulnerabilities" )
107
- for _ , vuln := range xrayResults .Vulnerabilities {
115
+ for _ , vuln := range xrayResults [ 0 ] .Vulnerabilities {
108
116
for component := range vuln .Components {
109
117
addVuln := vulns .CreateElement ("vulnerability" )
110
118
addVuln .CreateAttr ("bom-ref" , component )
0 commit comments