poky: subtree update:a616ffebdc..9052e5b32a

Adrian Bunk (1):
      bind: Whitelist CVE-2019-6470

Alexander Kanavin (13):
      python: update to 2.7.17
      tiff: update to 4.1.0
      librepo: upgrade 1.10.6 -> 1.11.0
      btrfs-tools: upgrade 5.3 -> 5.3.1
      psmisc: update to 23.3
      libxslt: update to 1.1.34
      Revert "devtool/standard.py: Not filtering devtool workspace for devtool finish"
      mpg123: upgrade 1.25.12 -> 1.25.13
      vala: upgrade 0.46.3 -> 0.46.4
      sysstat: upstream version check is working again
      cairo: the component is dual licensed
      selftest: check that 'devtool upgrade' correctly drops backported patches
      runqemu: add options that enable virgl with the SDL frontend

Alistair Francis (1):
      mesa: Upgrade to 19.2.4

Anuj Mittal (7):
      boost: fix build for x32
      rng-tools: upgrade 6.7 -> 6.8
      harfbuzz: upgrade 2.6.1 -> 2.6.4
      libsolv: upgrade 0.7.6 -> 0.7.8
      sqlite3: upgrade 3.30.0 -> 3.30.1
      stress-ng: upgrade 0.10.08 -> 0.10.10
      glib-2.0: upgrade 2.62.1 -> 2.62.2

Armin Kuster (9):
      oeqa/manual/bsp-hw: remove rpm -ivh test
      oeqa/runtime/boot: add reboot test
      oeqa/manual/bsp-hw: remove reboot test
      oeqa/manual/bsp-hw: move storage tests to runtime
      oeqa/manual/bsp-hw: remove usb and SDmicro tests
      manual/bsd-hw: remove bash tests
      oeqa/manual/compliance-test: remove crashme tests
      oeqa/manual/compliance-test: move crashme to runtime
      /oeqa/manual/compliance-test: remove obsolete test

Chee Yang Lee (2):
      wic: rm with -r flag support
      selftest/wic: test wic rm with -r flag

Denys Dmytriyenko (1):
      distro_features_check: expand with MACHINE_FEATURES and COMBINED_FEATURES, rename

Kai Kang (1):
      systemd: remove ${PN}-xorg-xinitrc

Khem Raj (1):
      webkitgtk: Remove clang specific option

Paul Barker (1):
      cdrtools-native: Don't set uid/gid during install

Paul Eggleton (1):
      devtool: fix devtool upgrade with reproducible_builds class

Richard Purdie (10):
      oeqa/devtool: Avoid unbound variable errors
      recipetool/create: Fix to work with reproducible_builds
      opkg: Add upstream fixes for empty packages
      opkg-utils: Fix silent empty/broken opkg package creation
      core-image-full-cmdline: Add less
      bitbake: fetch2/clearcase: Fix warnings from python 3.8
      bitbake: runqueue: Fix hash equivalence duplicate tasks running
      sanity: Add check for tar older than 1.28
      oeqa/selftest/sstatetests: Ensure we don't use hashequiv for sstatesigs tests
      package_ipk: Remove pointless comment to trigger rebuild

Ross Burton (8):
      cve-update-db-native: don't hardcode the database name
      cve-update-db-native: add an index on the CVE ID column
      cve-update-db-native: clean up proxy handling
      cve-check: rewrite look to fix false negatives
      cve-check: neaten get_cve_info
      cve-check: fetch CVE data once at a time instead of in a single call
      bitbake: tests: add test for the hashing functions
      bitbake: utils: also use mmap for SHA256 and SHA1, for performance

Yi Zhao (1):
      bitbake: contrib/vim/indent/bitbake.vim: move it to correct directory

Change-Id: I526155f21145180c764252a2ae5bfba33def10ff
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/poky/meta/recipes-core/meta/cve-update-db-native.bb b/poky/meta/recipes-core/meta/cve-update-db-native.bb
index 19875a4..db1d69a 100644
--- a/poky/meta/recipes-core/meta/cve-update-db-native.bb
+++ b/poky/meta/recipes-core/meta/cve-update-db-native.bb
@@ -21,15 +21,17 @@
     """
     Update NVD database with json data feed
     """
-
+    import bb.utils
     import sqlite3, urllib, urllib.parse, shutil, gzip
     from datetime import date
 
+    bb.utils.export_proxies(d)
+
     BASE_URL = "https://nvd.nist.gov/feeds/json/cve/1.0/nvdcve-1.0-"
     YEAR_START = 2002
 
-    db_dir = os.path.join(d.getVar("DL_DIR"), 'CVE_CHECK')
-    db_file = os.path.join(db_dir, 'nvdcve_1.0.db')
+    db_file = d.getVar("CVE_CHECK_DB_FILE")
+    db_dir = os.path.dirname(db_file)
     json_tmpfile = os.path.join(db_dir, 'nvd.json.gz')
 
     # Don't refresh the database more than once an hour
@@ -40,16 +42,6 @@
     except OSError:
         pass
 
-    proxy = d.getVar("https_proxy")
-    if proxy:
-        # instantiate an opener but do not install it as the global
-        # opener unless if we're really sure it's applicable for all
-        # urllib requests
-        proxy_handler = urllib.request.ProxyHandler({'https': proxy})
-        proxy_opener = urllib.request.build_opener(proxy_handler)
-    else:
-        proxy_opener = None
-
     cve_f = open(os.path.join(d.getVar("TMPDIR"), 'cve_check'), 'a')
 
     if not os.path.isdir(db_dir):
@@ -67,15 +59,7 @@
         json_url = year_url + ".json.gz"
 
         # Retrieve meta last modified date
-
-        response = None
-
-        if proxy_opener:
-            response = proxy_opener.open(meta_url)
-        else:
-            req = urllib.request.Request(meta_url)
-            response = urllib.request.urlopen(req)
-
+        response = urllib.request.urlopen(meta_url)
         if response:
             for l in response.read().decode("utf-8").splitlines():
                 key, value = l.split(":", 1)
@@ -95,12 +79,7 @@
 
             # Update db with current year json file
             try:
-                if proxy_opener:
-                    response = proxy_opener.open(json_url)
-                else:
-                    req = urllib.request.Request(json_url)
-                    response = urllib.request.urlopen(req)
-
+                response = urllib.request.urlopen(json_url)
                 if response:
                     update_db(c, gzip.decompress(response.read()).decode('utf-8'))
                 c.execute("insert or replace into META values (?, ?)", [year, last_modified])
@@ -120,11 +99,14 @@
 
 def initialize_db(c):
     c.execute("CREATE TABLE IF NOT EXISTS META (YEAR INTEGER UNIQUE, DATE TEXT)")
+
     c.execute("CREATE TABLE IF NOT EXISTS NVD (ID TEXT UNIQUE, SUMMARY TEXT, \
         SCOREV2 TEXT, SCOREV3 TEXT, MODIFIED INTEGER, VECTOR TEXT)")
+
     c.execute("CREATE TABLE IF NOT EXISTS PRODUCTS (ID TEXT, \
         VENDOR TEXT, PRODUCT TEXT, VERSION_START TEXT, OPERATOR_START TEXT, \
         VERSION_END TEXT, OPERATOR_END TEXT)")
+    c.execute("CREATE INDEX IF NOT EXISTS PRODUCT_ID_IDX on PRODUCTS(ID);")
 
 def parse_node_and_insert(c, node, cveId):
     # Parse children node if needed