Skip to content

Commit ccfb2a6

Browse files
committed
create a function for duplicate code
1 parent 0720af1 commit ccfb2a6

1 file changed

Lines changed: 20 additions & 44 deletions

File tree

vulnfeeds/cvelist2osv/default_extractor.go

Lines changed: 20 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)