From 74b2c7aab357e6d5c5a9e5ace777c6991dac2638 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Fri, 26 Jul 2013 14:48:15 -0400 Subject: [PATCH] core: Work around libguestfs/FUSE issue with setuid binaries For some reason, the setuid bits are being stripped. This workaround is enough for now. --- src/libostree/ostree-core.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/libostree/ostree-core.c b/src/libostree/ostree-core.c index ef9595d4..8a989373 100644 --- a/src/libostree/ostree-core.c +++ b/src/libostree/ostree-core.c @@ -1245,6 +1245,16 @@ ostree_create_file_from_input (GFile *dest_file, if (!g_output_stream_close ((GOutputStream*)out, NULL, error)) goto out; + + /* Work around libguestfs/FUSE bug */ + if (mode & (S_ISUID|S_ISGID)) + { + if (chmod (dest_path, mode) == -1) + { + ot_util_set_error_from_errno (error, errno); + goto out; + } + } } else if (S_ISLNK (mode)) {