summaryrefslogtreecommitdiffstats
path: root/meta/classes/cve-check.bbclass
diff options
context:
space:
mode:
authorMarta Rybczynska <rybczynska@gmail.com>2022-06-03 14:17:10 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-06-06 13:36:05 +0100
commit3b26027a004d25aa1e66258a7cc6fb3eb6801d12 (patch)
treefab22c1738dea8ab51175c31fa631148d47a9589 /meta/classes/cve-check.bbclass
parent4417c376f692c58788739aeb1e1b15ad30fb780c (diff)
downloadpoky-3b26027a004d25aa1e66258a7cc6fb3eb6801d12.tar.gz
cve-check: write empty fragment files in the text mode
In the cve-check text mode output, we didn't write fragment files if there are no CVEs (if CVE_CHECK_REPORT_PATCHED is 1), or no unpached CVEs otherwise. However, in a system after multiple builds, cve_check_write_rootfs_manifest might find older files and use them as current, what leads to incorrect reporting. Fix it by always writing a fragment file, even if empty. (From OE-Core rev: f1b7877acd0f6e3626faa57d9f89809cfcdfd0f1) Signed-off-by: Marta Rybczynska <marta.rybczynska@huawei.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/cve-check.bbclass')
-rw-r--r--meta/classes/cve-check.bbclass27
1 files changed, 13 insertions, 14 deletions
diff --git a/meta/classes/cve-check.bbclass b/meta/classes/cve-check.bbclass
index 3844efcddb..0c5f40b78d 100644
--- a/meta/classes/cve-check.bbclass
+++ b/meta/classes/cve-check.bbclass
@@ -435,23 +435,22 @@ def cve_write_data_text(d, patched, unpatched, ignored, cve_data):
435 if unpatched_cves and d.getVar("CVE_CHECK_SHOW_WARNINGS") == "1": 435 if unpatched_cves and d.getVar("CVE_CHECK_SHOW_WARNINGS") == "1":
436 bb.warn("Found unpatched CVE (%s), for more information check %s" % (" ".join(unpatched_cves),cve_file)) 436 bb.warn("Found unpatched CVE (%s), for more information check %s" % (" ".join(unpatched_cves),cve_file))
437 437
438 if write_string: 438 with open(cve_file, "w") as f:
439 with open(cve_file, "w") as f: 439 bb.note("Writing file %s with CVE information" % cve_file)
440 bb.note("Writing file %s with CVE information" % cve_file) 440 f.write(write_string)
441 f.write(write_string)
442 441
443 if d.getVar("CVE_CHECK_COPY_FILES") == "1": 442 if d.getVar("CVE_CHECK_COPY_FILES") == "1":
444 deploy_file = d.getVar("CVE_CHECK_RECIPE_FILE") 443 deploy_file = d.getVar("CVE_CHECK_RECIPE_FILE")
445 bb.utils.mkdirhier(os.path.dirname(deploy_file)) 444 bb.utils.mkdirhier(os.path.dirname(deploy_file))
446 with open(deploy_file, "w") as f: 445 with open(deploy_file, "w") as f:
447 f.write(write_string) 446 f.write(write_string)
448 447
449 if d.getVar("CVE_CHECK_CREATE_MANIFEST") == "1": 448 if d.getVar("CVE_CHECK_CREATE_MANIFEST") == "1":
450 cvelogpath = d.getVar("CVE_CHECK_SUMMARY_DIR") 449 cvelogpath = d.getVar("CVE_CHECK_SUMMARY_DIR")
451 bb.utils.mkdirhier(cvelogpath) 450 bb.utils.mkdirhier(cvelogpath)
452 451
453 with open(d.getVar("CVE_CHECK_TMP_FILE"), "a") as f: 452 with open(d.getVar("CVE_CHECK_TMP_FILE"), "a") as f:
454 f.write("%s" % write_string) 453 f.write("%s" % write_string)
455 454
456def cve_check_write_json_output(d, output, direct_file, deploy_file, manifest_file): 455def cve_check_write_json_output(d, output, direct_file, deploy_file, manifest_file):
457 """ 456 """