]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - src/machine/image-dbus.c
Add SPDX license identifiers to source files under the LGPL
[thirdparty/systemd.git] / src / machine / image-dbus.c
index a7b9d1f9ef04fb2ea5774f31437c2abb9ff1392a..c868d623bac3a304ca5525cd77505f7ad86bed4e 100644 (file)
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: LGPL-2.1+ */
 /***
   This file is part of systemd.
 
@@ -17,6 +18,7 @@
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 ***/
 
+#include <sys/file.h>
 #include <sys/mount.h>
 
 #include "alloc-util.h"
@@ -335,7 +337,7 @@ static int raw_image_get_os_release(Image *image, char ***ret, sd_bus_error *err
         if (r < 0)
                 return sd_bus_error_set_errnof(error, r, "Failed to set up loop block device for %s: %m", image->path);
 
-        r = dissect_image(d->fd, NULL, 0, &m);
+        r = dissect_image(d->fd, NULL, 0, DISSECT_IMAGE_REQUIRE_ROOT, &m);
         if (r == -ENOPKG)
                 return sd_bus_error_set_errnof(error, r, "Disk image %s not understood: %m", image->path);
         if (r < 0)
@@ -374,7 +376,7 @@ static int raw_image_get_os_release(Image *image, char ***ret, sd_bus_error *err
                 if (fd < 0)
                         _exit(EXIT_FAILURE);
 
-                r = copy_bytes(fd, pair[1], (uint64_t) -1, false);
+                r = copy_bytes(fd, pair[1], (uint64_t) -1, 0);
                 if (r < 0)
                         _exit(EXIT_FAILURE);
 
@@ -430,6 +432,7 @@ int bus_image_method_get_os_release(
                 break;
 
         case IMAGE_RAW:
+        case IMAGE_BLOCK:
                 r = raw_image_get_os_release(image, &v, error);
                 break;