]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
dissect-image: don't try to validate an extension release file with no image name
authorLennart Poettering <lennart@poettering.net>
Mon, 4 Dec 2023 17:20:36 +0000 (18:20 +0100)
committerLennart Poettering <lennart@poettering.net>
Tue, 12 Dec 2023 15:19:31 +0000 (16:19 +0100)
Otherwise we might validate the OS release file instead…

src/shared/dissect-image.c

index 7142429642f730a7f7d911ed758fb119129c52f5..65f5e786b5693dcfea0eac778b84a9ad6ce4fd42 100644 (file)
@@ -2179,7 +2179,7 @@ int dissected_image_mount(
                         if (r > 0)
                                 ok = true;
                 }
-                if (!ok && FLAGS_SET(flags, DISSECT_IMAGE_VALIDATE_OS_EXT)) {
+                if (!ok && FLAGS_SET(flags, DISSECT_IMAGE_VALIDATE_OS_EXT) && m->image_name) {
                         r = extension_has_forbidden_content(where);
                         if (r < 0)
                                 return r;
@@ -3439,6 +3439,9 @@ int dissected_image_acquire_metadata(DissectedImage *m, DissectImageFlags extra_
                         switch (k) {
 
                         case META_SYSEXT_RELEASE:
+                                if (!m->image_name)
+                                        goto next;
+
                                 /* As per the os-release spec, if the image is an extension it will have a
                                  * file named after the image name in extension-release.d/ - we use the image
                                  * name and try to resolve it with the extension-release helpers, as
@@ -3459,6 +3462,9 @@ int dissected_image_acquire_metadata(DissectedImage *m, DissectImageFlags extra_
                                 break;
 
                         case META_CONFEXT_RELEASE:
+                                if (!m->image_name)
+                                        goto next;
+
                                 /* As above */
                                 r = open_extension_release(
                                                 t,