summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKamil Dudka <kdudka@redhat.com>2016-11-28 16:21:42 +0100
committerPádraig Brady <P@draigBrady.com>2016-11-28 16:17:31 +0000
commitd8104265f229ababd5a68a46eeccbccc07e72cdc (patch)
tree7708c3d2eca30a3094de010b09bab746ec226770 /src
parenta39641cbb8f37c5a19dd4820c6f6719c82d3e633 (diff)
downloadcoreutils-d8104265f229ababd5a68a46eeccbccc07e72cdc.tar.xz
install,mkdir: fix handling of -DZ and -pZ, respectively
... in the case where two or more directories nested in each other are created and each of them defaults to a different SELinux context. * src/install.c (make_ancestor): When calling defaultcon(), give it the same path that is given to mkdir(). The other path is not always valid wrt. current working directory. * src/mkdir.c (make_ancestor): Likewise. * NEWS: Mention the bug fix. Reported at https://bugzilla.redhat.com/1398913
Diffstat (limited to 'src')
-rw-r--r--src/install.c2
-rw-r--r--src/mkdir.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/install.c b/src/install.c
index 414d645cc..d79d59789 100644
--- a/src/install.c
+++ b/src/install.c
@@ -427,7 +427,7 @@ static int
make_ancestor (char const *dir, char const *component, void *options)
{
struct cp_options const *x = options;
- if (x->set_security_context && defaultcon (dir, S_IFDIR) < 0
+ if (x->set_security_context && defaultcon (component, S_IFDIR) < 0
&& ! ignorable_ctx_err (errno))
error (0, errno, _("failed to set default creation context for %s"),
quoteaf (dir));
diff --git a/src/mkdir.c b/src/mkdir.c
index ccd923b1c..6b51292fa 100644
--- a/src/mkdir.c
+++ b/src/mkdir.c
@@ -123,7 +123,7 @@ make_ancestor (char const *dir, char const *component, void *options)
{
struct mkdir_options const *o = options;
- if (o->set_security_context && defaultcon (dir, S_IFDIR) < 0
+ if (o->set_security_context && defaultcon (component, S_IFDIR) < 0
&& ! ignorable_ctx_err (errno))
error (0, errno, _("failed to set default creation context for %s"),
quoteaf (dir));