chiark / gitweb /
mount-setup.c: fix handling of symlink Smack labelling in cgroup setup
authorPatrick Ohly <patrick.ohly@intel.com>
Mon, 21 Dec 2015 13:56:00 +0000 (14:56 +0100)
committerSven Eden <yamakuzure@gmx.net>
Wed, 17 May 2017 13:22:14 +0000 (15:22 +0200)
commitb81e1f72c73aaee653819615faaebacc48eeb18d
treee4b83bd3cd9747631a14f91753c1cce6fe917802
parent3e12c3740726944df0251617fa165e464fafba21
mount-setup.c: fix handling of symlink Smack labelling in cgroup setup

The code introduced in f8c1a81c51 (= elogind 227) failed for me with:
  Failed to copy smack label from net_cls to /sys/fs/cgroup/net_cls: No such file or directory

There is no need for a symlink in this case because source and target
are identical. The symlink() call is allowed to fail when the target
already exists. When that happens, copying the Smack label must be
skipped.

But the code also failed when there is a symlink, like "cpu ->
cpu,cpuacct", because mac_smack_copy() got called with
src="cpu,cpuacct" which fails to find the entry because the current
directory is not inside /sys/fs/cgroup. The absolute path to the existing
entry must be used instead.
src/core/mount-setup.c