]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
repart: Fix xopenat_full() error handling
authorDaan De Meyer <daan@amutable.com>
Wed, 22 Apr 2026 19:17:17 +0000 (21:17 +0200)
committerLuca Boccassi <luca.boccassi@gmail.com>
Fri, 22 May 2026 12:57:29 +0000 (13:57 +0100)
(cherry picked from commit 4114bf7e700fa2c6877230ca1199056cfbafc4e7)

src/repart/repart.c

index c7f98a5853e05b1bb2ad7b5d30c53897e0f1592c..eccbaef7368751945e99a01919d36b33187ce141 100644 (file)
@@ -8715,7 +8715,7 @@ static int context_minimize(Context *context) {
                                 attrs & FS_NOCOW_FL ? XO_NOCOW : 0,
                                 0600);
                 if (fd < 0)
-                        return log_error_errno(errno, "Failed to open temporary file %s: %m", temp);
+                        return log_error_errno(fd, "Failed to open temporary file %s: %m", temp);
 
                 if (fstype_is_ro(p->format) || is_btrfs)
                         /* Read-only filesystems and btrfs (with mkfs.btrfs --shrink) produce a minimal
@@ -8926,7 +8926,7 @@ static int context_minimize(Context *context) {
                                 attrs & FS_NOCOW_FL ? XO_NOCOW : 0,
                                 0600);
                 if (fd < 0)
-                        return log_error_errno(errno, "Failed to open temporary file %s: %m", temp);
+                        return log_error_errno(fd, "Failed to open temporary file %s: %m", temp);
 
                 r = partition_format_verity_hash(context, p, temp, dp->copy_blocks_path);
                 if (r < 0)
@@ -10024,7 +10024,7 @@ static int find_root(Context *context) {
 
                         fd = xopenat_full(AT_FDCWD, arg_node, O_RDONLY|O_CREAT|O_EXCL|O_CLOEXEC|O_NOFOLLOW, XO_NOCOW, 0666);
                         if (fd < 0)
-                                return log_error_errno(errno, "Failed to create '%s': %m", arg_node);
+                                return log_error_errno(fd, "Failed to create '%s': %m", arg_node);
 
                         context->node = TAKE_PTR(s);
                         context->node_is_our_file = true;