@@ -74,16 +74,14 @@ func (o *Options) Run() error {
74
74
75
75
operationResults := operations .Perform (o .Logger , detected , o .Settings .Resolvers .Surgeons (o .Logger , o .commander ))
76
76
enhancedResults := supplements .Supplement (o .Logger , operationResults )
77
- cves := o .addVulnerabilities (enhancedResults , cve2Lib )
77
+ cves := o .addVulnerabilities (enhancedResults , cve2Sha2Lib )
78
78
79
79
_ , _ = fmt .Fprintln (o .Out )
80
80
81
81
if len (cves ) > 0 {
82
82
o .displayVulnerabilities (enhancedResults )
83
83
_ , _ = fmt .Fprintf (o .Out , `
84
84
One or more of your projects contain the %s exploit.
85
-
86
- Remediation steps:
87
85
%s
88
86
Learn more about the vulnerability and it's remediation:
89
87
%s
@@ -100,18 +98,16 @@ Learn more about the vulnerability and it's remediation:
100
98
return nil
101
99
}
102
100
103
- func (o * Options ) addVulnerabilities (results []records.EnhancedResult , vulnerableLibs []records.VulnerableLib ) []string {
104
- count := 0
101
+ func (o * Options ) addVulnerabilities (results []records.EnhancedResult , cve2Sha12Lib CveToSha1ToLib ) []string {
105
102
cveMap := map [string ]bool {}
106
103
for i := range results {
107
104
r := & results [i ]
108
105
r .DepId2VulnerableLib = map [records.Id ]records.VulnerableLib {}
109
106
for id , dep := range * r .Deps {
110
- for _ , lib := range vulnerableLibs {
111
- if dep . Sha1 == lib .Sha1 {
107
+ for cve , sha12Lib := range cve2Sha12Lib {
108
+ if lib , ok := sha12Lib [ dep .Sha1 ]; ok {
112
109
r .DepId2VulnerableLib [id ] = lib
113
- cveMap [lib .CVE ] = true
114
- count ++
110
+ cveMap [cve ] = true
115
111
}
116
112
}
117
113
}
@@ -141,7 +137,7 @@ func (o *Options) displayVulnerabilities(results []records.EnhancedResult) {
141
137
break
142
138
}
143
139
144
- _ , _ = fmt .Fprintln (o .Out , utils .MakeBlueText ("Vulnerable Jars : " ))
140
+ _ , _ = fmt .Fprintln (o .Out , utils .MakeBlueText ("Vulnerable Files : " ))
145
141
for id := range r .DepId2VulnerableLib {
146
142
path := (* r .Libraries )[id ].SystemPath
147
143
if abs , err := filepath .Abs (path ); err == nil {
@@ -159,14 +155,19 @@ func (o *Options) generateRemediationSteps(results []records.EnhancedResult) str
159
155
for _ , r := range results {
160
156
for _ , v := range r .DepId2VulnerableLib {
161
157
if artifact2Fix , found := fixes [v .GroupId ]; found {
162
- if fix , found := artifact2Fix [v .ArtifactId ]; found {
158
+ if fix , fixFound := artifact2Fix [v .ArtifactId ]; fixFound {
163
159
set [fix ] = true
164
160
}
165
161
}
166
162
}
167
163
}
168
164
165
+ if len (set ) == 0 {
166
+ return ""
167
+ }
168
+
169
169
var steps strings.Builder
170
+ steps .WriteString ("\n Remediation Steps:\n " )
170
171
for fix := range set {
171
172
steps .WriteString (fmt .Sprintf ("\t * %s\n " , fix ))
172
173
}
0 commit comments