diff options
author | Li Zefan <lizefan@huawei.com> | 2013-04-19 02:09:52 -0400 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2013-04-19 02:11:40 -0400 |
commit | 712317ad97f41e738e1a19aa0a6392a78a84094e (patch) | |
tree | 66988449eb8cca53e032eed6ddc1169f9296eeac /kernel/rtmutex_common.h | |
parent | e57d5cf2f894e3f2727f8cf74bed0bc81cae70c8 (diff) |
cgroup: fix broken file xattrs
We should store file xattrs in struct cfent instead of struct cftype,
because cftype is a type while cfent is object instance of cftype.
For example each cgroup has a tasks file, and each tasks file is
associated with a uniq cfent, but all those files share the same
struct cftype.
Alexey Kodanev reported a crash, which can be reproduced:
# mount -t cgroup -o xattr /sys/fs/cgroup
# mkdir /sys/fs/cgroup/test
# setfattr -n trusted.value -v test_value /sys/fs/cgroup/tasks
# rmdir /sys/fs/cgroup/test
# umount /sys/fs/cgroup
oops!
In this case, simple_xattrs_free() will free the same struct simple_xattrs
twice.
tj: Dropped unused local variable @cft from cgroup_diput().
Cc: <stable@vger.kernel.org> # 3.8.x
Reported-by: Alexey Kodanev <alexey.kodanev@oracle.com>
Signed-off-by: Li Zefan <lizefan@huawei.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'kernel/rtmutex_common.h')
0 files changed, 0 insertions, 0 deletions