debian-cve-check: Improve error handling when dst.json download fails #148
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Purpose of pull request
If the Debian Security Tracker json (dst.json) download fails or file is invalid, the CVE check cannot be performed.
In this case, output backtrace [1] because there is insufficient error checking.
So improve to error handling.
[1]
Background
When cve-check cannot be performed, there are two ways of thinking depending on the purpose of bitbake:
e.g.
bitbake core-image-minimale.g.
bitbake bash -c cve_checkAdd "CVE_CHECK_ERROR_ON_FAILURE" variable to satisfy these wants.
By disabling "CVE_CHECK_DB_FILE" variable, CVE check will be skipped in Poky's do_cve_check() function.
This is the same behavior as if the NVD database download failed in Poky, skip the CVE check and continue with build.
Immediately exit with bb.fatal().
Details of improvements
The following changes in this commit:
Delete file exist check as they are handled by exception handling.
(Even if the dst.json download fails,) A successfully downloaded dst.json file may still exist, so if the timestamp within CVE_DB_UPDATE_INTERVAL (default 24 hours), it is considered a valid file.
Change the log output lebel to match behavior of this variable.
Add spaces after comma.
Test
How to test
local.conf setting
DEBIAN_SECRUTY_TRACKER_JSON_URLto empty so that dst.json download failsDEBIAN_SECRUTY_TRACKER_JSON_URL_appendexists, comment it out.Add the following to local.conf.
And, for purpose of test, modify
CVE_CHECK_ERROR_ON_FAILURE.Preparing for testing
Remove the dst.json file.
Build bash package and check log
Test result
For skip behavior
Displayed WARNING message and bitbake succeeds.
For fatal behavior
By bb.fatal(), displayed ERROR message and bitbake stops.