mirror of
https://git.yoctoproject.org/poky
synced 2026-06-03 13:49:49 +00:00
cve-check-tool: Add recipe
cve-check-tool is a program for public CVEs checking. This tool also seek to determine if a vulnerability has been addressed by a patch. The recipe also includes the do_populate_cve_db task that will populate the database used by the tool. [YOCTO #7515] (From OE-Core rev: 5deadfe634638b99420342950bc544547f7121dc) Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
08dc55ce84
commit
189673244b
@@ -0,0 +1,59 @@
|
|||||||
|
SUMMARY = "cve-check-tool"
|
||||||
|
DESCRIPTION = "cve-check-tool is a tool for checking known (public) CVEs.\
|
||||||
|
The tool will identify potentially vunlnerable software packages within Linux distributions through version matching."
|
||||||
|
HOMEPAGE = "https://github.com/ikeydoherty/cve-check-tool"
|
||||||
|
SECTION = "Development/Tools"
|
||||||
|
LICENSE = "GPL-2.0+"
|
||||||
|
LIC_FILES_CHKSUM = "file://LICENSE;md5=e8c1458438ead3c34974bc0be3a03ed6"
|
||||||
|
|
||||||
|
SRC_URI = "https://github.com/ikeydoherty/${BPN}/releases/download/v${PV}/${BP}.tar.xz \
|
||||||
|
file://check-for-malloc_trim-before-using-it.patch \
|
||||||
|
"
|
||||||
|
|
||||||
|
SRC_URI[md5sum] = "c5f4247140fc9be3bf41491d31a34155"
|
||||||
|
SRC_URI[sha256sum] = "b8f283be718af8d31232ac1bfc10a0378fb958aaaa49af39168f8acf501e6a5b"
|
||||||
|
|
||||||
|
DEPENDS = "libcheck glib-2.0 json-glib curl libxml2 sqlite3 openssl ca-certificates"
|
||||||
|
|
||||||
|
RDEPENDS_${PN} = "ca-certificates"
|
||||||
|
|
||||||
|
inherit pkgconfig autotools
|
||||||
|
|
||||||
|
EXTRA_OECONF = "--disable-coverage"
|
||||||
|
CFLAGS_append = " -Wno-error=pedantic"
|
||||||
|
|
||||||
|
python do_populate_cve_db () {
|
||||||
|
import subprocess
|
||||||
|
import time
|
||||||
|
|
||||||
|
if d.getVar("BB_NO_NETWORK", True) == "1":
|
||||||
|
bb.error("BB_NO_NETWORK is set; Can't update cve-check-tool database, "
|
||||||
|
"CVEs won't be checked")
|
||||||
|
return
|
||||||
|
|
||||||
|
bb.utils.export_proxies(d)
|
||||||
|
# In case we don't inherit cve-check class, use default values defined in the class.
|
||||||
|
cve_dir = d.getVar("CVE_CHECK_DB_DIR", True) or d.expand("${DL_DIR}/CVE_CHECK")
|
||||||
|
cve_file = d.getVar("CVE_CHECK_TMP_FILE", True) or d.expand("${TMPDIR}/cve_check")
|
||||||
|
cve_cmd = "cve-check-update"
|
||||||
|
cmd = [cve_cmd, "-d", cve_dir]
|
||||||
|
bb.debug(1, "Updating cve-check-tool database located in %s" % cve_dir)
|
||||||
|
try:
|
||||||
|
output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
|
||||||
|
bb.debug(2, "Command '%s' returned:\n%s" % ("\n".join(cmd), output))
|
||||||
|
time_utc = time.gmtime(time.time())
|
||||||
|
time_format = "%Y-%m-%d %H:%M:%S"
|
||||||
|
with open(cve_file, "w") as f:
|
||||||
|
f.write("CVE database was updated on %s UTC\n\n"
|
||||||
|
% time.strftime(time_format, time_utc))
|
||||||
|
|
||||||
|
except subprocess.CalledProcessError as e:
|
||||||
|
bb.warn("Error in executing cve-check-update: %s (output %s)" % (e, e.output))
|
||||||
|
if bb.data.inherits_class('cve-check', d):
|
||||||
|
bb.warn("Failed to update cve-check-tool database, CVEs won't be checked")
|
||||||
|
}
|
||||||
|
|
||||||
|
addtask populate_cve_db after do_populate_sysroot
|
||||||
|
do_populate_cve_db[nostamp] = "1"
|
||||||
|
|
||||||
|
BBCLASSEXTEND = "native nativesdk"
|
||||||
+51
@@ -0,0 +1,51 @@
|
|||||||
|
From ce64633b9733e962b8d8482244301f614d8b5845 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Khem Raj <raj.khem@gmail.com>
|
||||||
|
Date: Mon, 22 Aug 2016 22:54:24 -0700
|
||||||
|
Subject: [PATCH] Check for malloc_trim before using it
|
||||||
|
|
||||||
|
malloc_trim is gnu specific and not all libc
|
||||||
|
implement it, threfore write a configure check
|
||||||
|
to poke for it first and use the define to
|
||||||
|
guard its use.
|
||||||
|
|
||||||
|
Helps in compiling on musl based systems
|
||||||
|
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
---
|
||||||
|
Upstream-Status: Submitted [https://github.com/ikeydoherty/cve-check-tool/pull/48]
|
||||||
|
configure.ac | 2 ++
|
||||||
|
src/core.c | 4 ++--
|
||||||
|
2 files changed, 4 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index d3b66ce..79c3542 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -19,6 +19,8 @@ m4_define([json_required_version], [0.16.0])
|
||||||
|
m4_define([openssl_required_version],[1.0.0])
|
||||||
|
# TODO: Set minimum sqlite
|
||||||
|
|
||||||
|
+AC_CHECK_FUNCS_ONCE(malloc_trim)
|
||||||
|
+
|
||||||
|
PKG_CHECK_MODULES(CVE_CHECK_TOOL,
|
||||||
|
[
|
||||||
|
glib-2.0 >= glib_required_version,
|
||||||
|
diff --git a/src/core.c b/src/core.c
|
||||||
|
index 6263031..0d5df29 100644
|
||||||
|
--- a/src/core.c
|
||||||
|
+++ b/src/core.c
|
||||||
|
@@ -498,9 +498,9 @@ bool cve_db_load(CveDB *self, const char *fname)
|
||||||
|
}
|
||||||
|
|
||||||
|
b = true;
|
||||||
|
-
|
||||||
|
+#ifdef HAVE_MALLOC_TRIM
|
||||||
|
malloc_trim(0);
|
||||||
|
-
|
||||||
|
+#endif
|
||||||
|
xmlFreeTextReader(r);
|
||||||
|
if (fd) {
|
||||||
|
close(fd);
|
||||||
|
--
|
||||||
|
2.9.3
|
||||||
|
|
||||||
Reference in New Issue
Block a user