[ostree] deploy: Actually copy xattrs of modified config files
- From: Colin Walters <walters src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [ostree] deploy: Actually copy xattrs of modified config files
- Date: Tue, 6 Jan 2015 16:17:05 +0000 (UTC)
commit 01f6d68c6029a797053a709adb302973ccf1aba6
Author: Colin Walters <walters verbum org>
Date: Sat Jan 3 12:14:11 2015 -0500
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.
https://bugzilla.gnome.org/show_bug.cgi?id=742289
src/libostree/ostree-sysroot-deploy.c | 13 +++++++++++++
1 files changed, 13 insertions(+), 0 deletions(-)
---
diff --git a/src/libostree/ostree-sysroot-deploy.c b/src/libostree/ostree-sysroot-deploy.c
index 70e4bd3..669604e 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_fd_set_all_xattrs (dest_fd, 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,
gs_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)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]