neigh_stat_seq_next() should increase position index
authorVasily Averin <vvs@virtuozzo.com>
Thu, 23 Jan 2020 07:11:28 +0000 (10:11 +0300)
committerDavid S. Miller <davem@davemloft.net>
Fri, 24 Jan 2020 10:42:18 +0000 (11:42 +0100)
if seq_file .next fuction does not change position index,
read after some lseek can generate unexpected output.

https://bugzilla.kernel.org/show_bug.cgi?id=206283
Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/neighbour.c

index 920784a9b7ffaf0140c8e4427e327ec8867c2a2a..789a73aa7bd87b3492e983f8c6c6723e1e3c6bc5 100644 (file)
@@ -3290,6 +3290,7 @@ static void *neigh_stat_seq_next(struct seq_file *seq, void *v, loff_t *pos)
                *pos = cpu+1;
                return per_cpu_ptr(tbl->stats, cpu);
        }
+       (*pos)++;
        return NULL;
 }