@@ -62,7 +62,7 @@ def __init__(
62
62
self .products_without_cve = 0
63
63
self .all_cve_data = defaultdict (lambda : {"cves" : [], "paths" : set ()})
64
64
self .all_cve_version_info = dict ()
65
- self .all_product_data = dict ( )
65
+ self .all_product_data = defaultdict ( lambda : { "cves_total" : 0 , "paths" : set ()} )
66
66
67
67
def get_cves (self , product_info : ProductInfo , triage_data : TriageData ):
68
68
"""Get CVEs against a specific version of a product.
@@ -81,22 +81,23 @@ def get_cves(self, product_info: ProductInfo, triage_data: TriageData):
81
81
# In no-scan mode, just populate the product data without CVE scanning
82
82
if product_info not in self .all_product_data :
83
83
self .logger .debug (f"Add product { product_info } (no-scan mode)" )
84
- self .all_product_data [product_info ] = 0
84
+ self .all_product_data [product_info ][ "cves_total" ] = 0
85
85
86
86
# Also populate all_cve_data with empty CVE list and paths
87
87
if product_info not in self .all_cve_data :
88
88
self .all_cve_data [product_info ] = {"cves" : [], "paths" : set ()}
89
89
90
90
# Update paths
91
91
self .all_cve_data [product_info ]["paths" ] |= set (triage_data ["paths" ])
92
+ self .all_product_data [product_info ]["paths" ] |= set (triage_data ["paths" ])
92
93
return
93
94
94
95
if product_info .vendor == "UNKNOWN" :
95
96
# Add product
96
97
if product_info not in self .all_product_data :
97
98
self .logger .debug (f"Add product { product_info } " )
98
99
# Number of CVEs is 0
99
- self .all_product_data [product_info ] = 0
100
+ self .all_product_data [product_info ][ "cves_total" ] = 0
100
101
return
101
102
102
103
if product_info in self .all_cve_data :
@@ -396,7 +397,10 @@ def get_cves(self, product_info: ProductInfo, triage_data: TriageData):
396
397
)
397
398
398
399
if product_info not in self .all_product_data :
399
- self .all_product_data [product_info ] = len (cves )
400
+ self .all_product_data [product_info ]["cves_total" ] = len (cves )
401
+
402
+ # Update paths
403
+ self .all_product_data [product_info ]["paths" ] |= set (triage_data ["paths" ])
400
404
401
405
def filter_triage_data (self ):
402
406
"""
0 commit comments