@@ -44,21 +44,7 @@ func (d *DefaultVersionExtractor) ExtractVersions(cve models.CVE5, v *vulns.Vuln
4444 } else {
4545 gotVersions = true
4646 }
47-
48- if len (resolvedRanges ) > 0 {
49- aff := & osvschema.Affected {
50- Ranges : resolvedRanges ,
51- }
52- if len (unresolvedRanges ) > 0 {
53- databaseSpecific , err := utility .NewStructpbFromMap (map [string ]any {"unresolved_ranges" : unresolvedRanges })
54- if err != nil {
55- logger .Warn ("failed to make database specific: %v" , err )
56- } else {
57- aff .DatabaseSpecific = databaseSpecific
58- }
59- }
60- conversion .AddAffected (v , aff , metrics )
61- }
47+ addRangesToAffected (resolvedRanges , unresolvedRanges , v , metrics )
6248 }
6349
6450 if ! gotVersions {
@@ -72,21 +58,7 @@ func (d *DefaultVersionExtractor) ExtractVersions(cve models.CVE5, v *vulns.Vuln
7258 } else {
7359 gotVersions = true
7460 }
75-
76- if len (resolvedRanges ) > 0 {
77- aff := & osvschema.Affected {
78- Ranges : resolvedRanges ,
79- }
80- if len (unresolvedRanges ) > 0 {
81- databaseSpecific , err := utility .NewStructpbFromMap (map [string ]any {"unresolved_ranges" : unresolvedRanges })
82- if err != nil {
83- logger .Warn ("failed to make database specific: %v" , err )
84- } else {
85- aff .DatabaseSpecific = databaseSpecific
86- }
87- }
88- conversion .AddAffected (v , aff , metrics )
89- }
61+ addRangesToAffected (resolvedRanges , unresolvedRanges , v , metrics )
9062 }
9163 }
9264
@@ -99,20 +71,7 @@ func (d *DefaultVersionExtractor) ExtractVersions(cve models.CVE5, v *vulns.Vuln
9971 metrics .AddNote ("Failed to convert git versions to commits" )
10072 }
10173
102- if len (resolvedRanges ) > 0 {
103- aff := & osvschema.Affected {
104- Ranges : resolvedRanges ,
105- }
106- if len (unresolvedRanges ) > 0 {
107- databaseSpecific , err := utility .NewStructpbFromMap (map [string ]any {"unresolved_ranges" : unresolvedRanges })
108- if err != nil {
109- logger .Warn ("failed to make database specific: %v" , err )
110- } else {
111- aff .DatabaseSpecific = databaseSpecific
112- }
113- }
114- conversion .AddAffected (v , aff , metrics )
115- }
74+ addRangesToAffected (resolvedRanges , unresolvedRanges , v , metrics )
11675 }
11776 }
11877}
@@ -175,3 +134,20 @@ func (d *DefaultVersionExtractor) FindNormalAffectedRanges(affected models.Affec
175134
176135 return versionRanges , mostFrequentVersionType
177136}
137+
138+ func addRangesToAffected (resolvedRanges []* osvschema.Range , unresolvedRanges []* osvschema.Range , v * vulns.Vulnerability , metrics * models.ConversionMetrics ){
139+ if len (resolvedRanges ) > 0 {
140+ aff := & osvschema.Affected {
141+ Ranges : resolvedRanges ,
142+ }
143+ if len (unresolvedRanges ) > 0 {
144+ databaseSpecific , err := utility .NewStructpbFromMap (map [string ]any {"unresolved_ranges" : unresolvedRanges })
145+ if err != nil {
146+ logger .Warn ("failed to make database specific: %v" , err )
147+ } else {
148+ aff .DatabaseSpecific = databaseSpecific
149+ }
150+ }
151+ conversion .AddAffected (v , aff , metrics )
152+ }
153+ }
0 commit comments