]> git.ipfire.org Git - thirdparty/libcgroup.git/commit
Rewrite cg_mkdir_p so it does not change current working directory.
authorJan Safranek <jsafrane@redhat.com>
Tue, 7 Sep 2010 18:04:52 +0000 (23:34 +0530)
committerBalbir Singh <balbir@linux.vnet.ibm.com>
Tue, 7 Sep 2010 18:04:52 +0000 (23:34 +0530)
commitbde80a30bc2c3bff9a57c68ac4bd735aade78544
tree28b3caedb09c57053bed3ac4c2174c737cafa8ac
parent95f1d1d63889068fe273149ea93c38361d08f51c
Rewrite cg_mkdir_p so it does not change current working directory.

Old sequence of operations when creating e.g. /cgroup/cpu
$OLDCWD=$PWD
cd /
mkdir cgroup
cd cgroup
mkdir cpu
cd $OLDCWD

New sequence is:
mkdir /cgroup
mkdir /cgroup/cpu

Some tools, namely those used in /etc/init.d/cgconfig, might be executed with
security constrained context, which does not allow them to access certain
directories (like /var/log/audit). And when e.g. cgconfigparser is executed in
/var/log/audit as current working directory, chdir("/var/log/audit") in
cg_mkdir_p() fails. As consequence, "/etc/init.d/cgconfig start" randomly fails
or succeeds, depending on current working directory and current SELinux policy.

Signed-off-by: Jan Safranek <jsafrane@redhat.com>
Signed-off-by: Balbir Singh <balbir@linux.vnet.ibm.com>
src/api.c