Merge pull request #22163 from bluca/extension_images_validation
Improve ExtensionImages validation
This commit is contained in:
@@ -1151,6 +1151,8 @@ static int mount_image(const MountEntry *m, const char *root_directory) {
|
||||
NULL);
|
||||
if (r < 0)
|
||||
return log_debug_errno(r, "Failed to acquire 'os-release' data of OS tree '%s': %m", empty_to_root(root_directory));
|
||||
if (isempty(host_os_release_id))
|
||||
return log_debug_errno(SYNTHETIC_ERRNO(EINVAL), "'ID' field not found or empty in 'os-release' data of OS tree '%s': %m", empty_to_root(root_directory));
|
||||
}
|
||||
|
||||
r = verity_dissect_and_mount(
|
||||
|
||||
@@ -3534,9 +3534,9 @@ int verity_dissect_and_mount(
|
||||
/* If we got os-release values from the caller, then we need to match them with the image's
|
||||
* extension-release.d/ content. Return -EINVAL if there's any mismatch.
|
||||
* First, check the distro ID. If that matches, then check the new SYSEXT_LEVEL value if
|
||||
* available, or else fallback to VERSION_ID. */
|
||||
if (required_host_os_release_id &&
|
||||
(required_host_os_release_version_id || required_host_os_release_sysext_level)) {
|
||||
* available, or else fallback to VERSION_ID. If neither is present (eg: rolling release),
|
||||
* then a simple match on the ID will be performed. */
|
||||
if (required_host_os_release_id) {
|
||||
_cleanup_strv_free_ char **extension_release = NULL;
|
||||
|
||||
r = load_extension_release_pairs(dest, dissected_image->image_name, &extension_release);
|
||||
|
||||
Reference in New Issue
Block a user