94a7dcd1ec
Fixes: #1178208
49 lines
1.7 KiB
Diff
49 lines
1.7 KiB
Diff
From 1ab7cbea678be3769cd00d94ba0be6beb0ce67b9 Mon Sep 17 00:00:00 2001
|
|
From: Colin Walters <walters@verbum.org>
|
|
Date: Sat, 3 Jan 2015 12:14:11 -0500
|
|
Subject: [PATCH] deploy: Actually copy xattrs of modified config files
|
|
|
|
Regression from 7b01bd2e4333d4346dd08e0b5caf672f56b1ccfd
|
|
where we stopped using g_file_copy() - we lost copying xattrs.
|
|
|
|
This specifically breaks /etc/shadow SELinux labeling, with the
|
|
obvious bad consequences.
|
|
---
|
|
src/libostree/ostree-sysroot-deploy.c | 13 +++++++++++++
|
|
1 file changed, 13 insertions(+)
|
|
|
|
diff --git a/src/libostree/ostree-sysroot-deploy.c b/src/libostree/ostree-sysroot-deploy.c
|
|
index 40dd7b5..c7a1d68 100644
|
|
--- a/src/libostree/ostree-sysroot-deploy.c
|
|
+++ b/src/libostree/ostree-sysroot-deploy.c
|
|
@@ -93,6 +93,13 @@ copy_one_file_fsync_at (int src_parent_dfd,
|
|
}
|
|
out = g_unix_output_stream_new (dest_fd, TRUE);
|
|
|
|
+ if (src_xattrs != NULL)
|
|
+ {
|
|
+ if (!gs_dfd_and_name_set_all_xattrs (dest_parent_dfd, name, src_xattrs,
|
|
+ cancellable, error))
|
|
+ goto out;
|
|
+ }
|
|
+
|
|
if (g_output_stream_splice (out, in, 0, cancellable, error) < 0)
|
|
goto out;
|
|
|
|
@@ -134,6 +141,12 @@ copy_one_file_fsync_at (int src_parent_dfd,
|
|
ot_util_set_error_from_errno (error, errno);
|
|
goto out;
|
|
}
|
|
+ if (src_xattrs != NULL)
|
|
+ {
|
|
+ if (!gs_dfd_and_name_set_all_xattrs (dest_parent_dfd, name, src_xattrs,
|
|
+ cancellable, error))
|
|
+ goto out;
|
|
+ }
|
|
if (fchownat (dest_parent_dfd, name,
|
|
stbuf->st_uid, stbuf->st_gid,
|
|
AT_SYMLINK_NOFOLLOW) != 0)
|
|
--
|
|
1.8.3.1
|
|
|