]> code.ossystems Code Review - openembedded-core.git/commitdiff
cve-check: get_cve_info should open the database read-only
authorRoss Burton <ross@burtonini.com>
Wed, 23 Feb 2022 12:54:31 +0000 (12:54 +0000)
committerAnuj Mittal <anuj.mittal@intel.com>
Mon, 7 Mar 2022 02:52:04 +0000 (10:52 +0800)
All of the function in cve-check should open the database read-only, as
the only writer is the fetch task in cve-update-db.  However,
get_cve_info() was failing to do this, which might be causing locking
issues with sqlite.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8de517238f1f418d9af1ce312d99de04ce2e26fc)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
meta/classes/cve-check.bbclass

index 21d3da79743c3769c1dc81c4b2f1a4894681bd81..646929d2edbfb09d762f0d88799e7018335fd852 100644 (file)
@@ -265,7 +265,8 @@ def get_cve_info(d, cves):
     import sqlite3
 
     cve_data = {}
-    conn = sqlite3.connect(d.getVar("CVE_CHECK_DB_FILE"))
+    db_file = d.expand("file:${CVE_CHECK_DB_FILE}?mode=ro")
+    conn = sqlite3.connect(db_file, uri=True)
 
     for cve in cves:
         for row in conn.execute("SELECT * FROM NVD WHERE ID IS ?", (cve,)):