mirror of
https://git.yoctoproject.org/poky
synced 2026-04-30 12:32:12 +02:00
cve-update-db: do_populate_cve_db depends on do_fetch
To be able to populate NVD database on a fetchall (bitbake <image> --run-all=fetch), set the do_populate_cve_db task to be executed before do_fetch. Do not get CVE_CHECK_DB_DIR, CVE_CHECK_DB_FILE and CVE_CHECK_TMP_FILE variable because do_populate_cve_db can be called in a context where cve-check class is not loaded. (From OE-Core rev: 975793e3825a2a9ca6dc0e43577f680214cb7993) Signed-off-by: Pierre Le Magourou <pierre.lemagourou@softbankrobotics.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
f08c4285a1
commit
9335a508a7
@@ -6,7 +6,6 @@ PACKAGES = ""
|
||||
|
||||
inherit nopackages
|
||||
|
||||
deltask do_fetch
|
||||
deltask do_unpack
|
||||
deltask do_patch
|
||||
deltask do_configure
|
||||
@@ -24,11 +23,16 @@ python do_populate_cve_db() {
|
||||
|
||||
BASE_URL = "https://nvd.nist.gov/feeds/json/cve/1.0/nvdcve-1.0-"
|
||||
YEAR_START = 2002
|
||||
JSON_TMPFILE = d.getVar("CVE_CHECK_DB_DIR") + '/nvd.json.gz'
|
||||
|
||||
db_dir = d.getVar("DL_DIR") + '/CVE_CHECK'
|
||||
db_file = db_dir + '/nvd-json.db'
|
||||
json_tmpfile = db_dir + '/nvd.json.gz'
|
||||
proxy = d.getVar("https_proxy")
|
||||
|
||||
if not os.path.isdir(db_dir):
|
||||
os.mkdir(db_dir)
|
||||
|
||||
# Connect to database
|
||||
db_file = d.getVar("CVE_CHECK_DB_FILE")
|
||||
conn = sqlite3.connect(db_file)
|
||||
c = conn.cursor()
|
||||
|
||||
@@ -55,9 +59,9 @@ python do_populate_cve_db() {
|
||||
req = urllib.request.Request(json_url)
|
||||
if proxy:
|
||||
req.set_proxy(proxy, 'https')
|
||||
with urllib.request.urlopen(req) as r, open(JSON_TMPFILE, 'wb') as tmpfile:
|
||||
with urllib.request.urlopen(req) as r, open(json_tmpfile, 'wb') as tmpfile:
|
||||
shutil.copyfileobj(r, tmpfile)
|
||||
with gzip.open(JSON_TMPFILE, 'rt') as jsonfile:
|
||||
with gzip.open(json_tmpfile, 'rt') as jsonfile:
|
||||
update_db(c, jsonfile)
|
||||
c.execute("insert or replace into META values (?, ?)",
|
||||
[year, last_modified])
|
||||
@@ -65,8 +69,9 @@ python do_populate_cve_db() {
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
with open(d.getVar("CVE_CHECK_TMP_FILE"), 'a'):
|
||||
os.utime(d.getVar("CVE_CHECK_TMP_FILE"), None)
|
||||
cve_check_tmp_file = d.getVar("TMPDIR") + '/cve_check'
|
||||
with open(cve_check_tmp_file, 'a'):
|
||||
os.utime(cve_check_tmp_file, None)
|
||||
}
|
||||
|
||||
# DJB2 hash algorithm
|
||||
@@ -120,7 +125,7 @@ def update_db(c, json_filename):
|
||||
|
||||
|
||||
|
||||
addtask do_populate_cve_db before do_cve_check
|
||||
addtask do_populate_cve_db before do_fetch
|
||||
do_populate_cve_db[nostamp] = "1"
|
||||
|
||||
EXCLUDE_FROM_WORLD = "1"
|
||||
|
||||
Reference in New Issue
Block a user