mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-10 07:00:48 +00:00
netfilter: x_tables: xt_mttg_seq_next should increase position index
If .next function does not change position index, following .show function will repeat output related to current position index. Without patch: # dd if=/proc/net/ip_tables_matches # original file output conntrack conntrack conntrack recent recent icmp udplite udp tcp 0+1 records in 0+1 records out 65 bytes copied, 5.4074e-05 s, 1.2 MB/s # dd if=/proc/net/ip_tables_matches bs=62 skip=1 dd: /proc/net/ip_tables_matches: cannot skip to specified offset cp <<< end of last line tcp <<< and then unexpected whole last line once again 0+1 records in 0+1 records out 7 bytes copied, 0.000102447 s, 68.3 kB/s Cc: stable@vger.kernel.org Fixes: 1f4aace60b0e ("fs/seq_file.c: simplify seq_file iteration code ...") Link: https://bugzilla.kernel.org/show_bug.cgi?id=206283 Signed-off-by: Vasily Averin <vvs@virtuozzo.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
parent
db25517a55
commit
ee84f19cbb
@ -1551,6 +1551,9 @@ static void *xt_mttg_seq_next(struct seq_file *seq, void *v, loff_t *ppos,
|
||||
uint8_t nfproto = (unsigned long)PDE_DATA(file_inode(seq->file));
|
||||
struct nf_mttg_trav *trav = seq->private;
|
||||
|
||||
if (ppos != NULL)
|
||||
++(*ppos);
|
||||
|
||||
switch (trav->class) {
|
||||
case MTTG_TRAV_INIT:
|
||||
trav->class = MTTG_TRAV_NFP_UNSPEC;
|
||||
@ -1576,9 +1579,6 @@ static void *xt_mttg_seq_next(struct seq_file *seq, void *v, loff_t *ppos,
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (ppos != NULL)
|
||||
++*ppos;
|
||||
return trav;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user