summaryrefslogtreecommitdiffstats
path: root/meta/classes/cve-check.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes/cve-check.bbclass')
-rw-r--r--meta/classes/cve-check.bbclass13
1 files changed, 9 insertions, 4 deletions
diff --git a/meta/classes/cve-check.bbclass b/meta/classes/cve-check.bbclass
index 5c8b512c11..4b4ea7893e 100644
--- a/meta/classes/cve-check.bbclass
+++ b/meta/classes/cve-check.bbclass
@@ -297,7 +297,8 @@ def check_cves(d, patched_cves):
297 vendor = "%" 297 vendor = "%"
298 298
299 # Find all relevant CVE IDs. 299 # Find all relevant CVE IDs.
300 for cverow in conn.execute("SELECT DISTINCT ID FROM PRODUCTS WHERE PRODUCT IS ? AND VENDOR LIKE ?", (product, vendor)): 300 cve_cursor = conn.execute("SELECT DISTINCT ID FROM PRODUCTS WHERE PRODUCT IS ? AND VENDOR LIKE ?", (product, vendor))
301 for cverow in cve_cursor:
301 cve = cverow[0] 302 cve = cverow[0]
302 303
303 if cve in cve_ignore: 304 if cve in cve_ignore:
@@ -316,7 +317,8 @@ def check_cves(d, patched_cves):
316 vulnerable = False 317 vulnerable = False
317 ignored = False 318 ignored = False
318 319
319 for row in conn.execute("SELECT * FROM PRODUCTS WHERE ID IS ? AND PRODUCT IS ? AND VENDOR LIKE ?", (cve, product, vendor)): 320 product_cursor = conn.execute("SELECT * FROM PRODUCTS WHERE ID IS ? AND PRODUCT IS ? AND VENDOR LIKE ?", (cve, product, vendor))
321 for row in product_cursor:
320 (_, _, _, version_start, operator_start, version_end, operator_end) = row 322 (_, _, _, version_start, operator_start, version_end, operator_end) = row
321 #bb.debug(2, "Evaluating row " + str(row)) 323 #bb.debug(2, "Evaluating row " + str(row))
322 if cve in cve_ignore: 324 if cve in cve_ignore:
@@ -360,10 +362,12 @@ def check_cves(d, patched_cves):
360 bb.note("%s-%s is vulnerable to %s" % (pn, real_pv, cve)) 362 bb.note("%s-%s is vulnerable to %s" % (pn, real_pv, cve))
361 cves_unpatched.append(cve) 363 cves_unpatched.append(cve)
362 break 364 break
365 product_cursor.close()
363 366
364 if not vulnerable: 367 if not vulnerable:
365 bb.note("%s-%s is not vulnerable to %s" % (pn, real_pv, cve)) 368 bb.note("%s-%s is not vulnerable to %s" % (pn, real_pv, cve))
366 patched_cves.add(cve) 369 patched_cves.add(cve)
370 cve_cursor.close()
367 371
368 if not cves_in_product: 372 if not cves_in_product:
369 bb.note("No CVE records found for product %s, pn %s" % (product, pn)) 373 bb.note("No CVE records found for product %s, pn %s" % (product, pn))
@@ -388,14 +392,15 @@ def get_cve_info(d, cves):
388 conn = sqlite3.connect(db_file, uri=True) 392 conn = sqlite3.connect(db_file, uri=True)
389 393
390 for cve in cves: 394 for cve in cves:
391 for row in conn.execute("SELECT * FROM NVD WHERE ID IS ?", (cve,)): 395 cursor = conn.execute("SELECT * FROM NVD WHERE ID IS ?", (cve,))
396 for row in cursor:
392 cve_data[row[0]] = {} 397 cve_data[row[0]] = {}
393 cve_data[row[0]]["summary"] = row[1] 398 cve_data[row[0]]["summary"] = row[1]
394 cve_data[row[0]]["scorev2"] = row[2] 399 cve_data[row[0]]["scorev2"] = row[2]
395 cve_data[row[0]]["scorev3"] = row[3] 400 cve_data[row[0]]["scorev3"] = row[3]
396 cve_data[row[0]]["modified"] = row[4] 401 cve_data[row[0]]["modified"] = row[4]
397 cve_data[row[0]]["vector"] = row[5] 402 cve_data[row[0]]["vector"] = row[5]
398 403 cursor.close()
399 conn.close() 404 conn.close()
400 return cve_data 405 return cve_data
401 406