summaryrefslogtreecommitdiffstats
path: root/kernel/cgroup
diff options
context:
space:
mode:
authorVasily Averin <vvs@virtuozzo.com>2020-01-30 13:34:49 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-04-01 11:01:50 +0200
commitb51274fabedc56adfdddbf4fce0e8fb69c7166b5 (patch)
tree24ca7ed3ae65033449eb0c500f707c95dcc83df8 /kernel/cgroup
parent74f554af848d8ac61454922392bc7f2153d252ee (diff)
downloadlinux-stable-b51274fabedc56adfdddbf4fce0e8fb69c7166b5.tar.gz
linux-stable-b51274fabedc56adfdddbf4fce0e8fb69c7166b5.tar.bz2
linux-stable-b51274fabedc56adfdddbf4fce0e8fb69c7166b5.zip
cgroup-v1: cgroup_pidlist_next should update position index
[ Upstream commit db8dd9697238be70a6b4f9d0284cd89f59c0e070 ] if seq_file .next fuction does not change position index, read after some lseek can generate unexpected output. # mount | grep cgroup # dd if=/mnt/cgroup.procs bs=1 # normal output ... 1294 1295 1296 1304 1382 584+0 records in 584+0 records out 584 bytes copied dd: /mnt/cgroup.procs: cannot skip to specified offset 83 <<< generates end of last line 1383 <<< ... and whole last line once again 0+1 records in 0+1 records out 8 bytes copied dd: /mnt/cgroup.procs: cannot skip to specified offset 1386 <<< generates last line anyway 0+1 records in 0+1 records out 5 bytes copied https://bugzilla.kernel.org/show_bug.cgi?id=206283 Signed-off-by: Vasily Averin <vvs@virtuozzo.com> Signed-off-by: Tejun Heo <tj@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'kernel/cgroup')
-rw-r--r--kernel/cgroup/cgroup-v1.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/cgroup/cgroup-v1.c b/kernel/cgroup/cgroup-v1.c
index 7f83f4121d8d..2db582706ec5 100644
--- a/kernel/cgroup/cgroup-v1.c
+++ b/kernel/cgroup/cgroup-v1.c
@@ -473,6 +473,7 @@ static void *cgroup_pidlist_next(struct seq_file *s, void *v, loff_t *pos)
*/
p++;
if (p >= end) {
+ (*pos)++;
return NULL;
} else {
*pos = *p;