lkml.org 
[lkml]   [2020]   [Mar]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.5 082/151] netfilter: x_tables: xt_mttg_seq_next should increase position index
    Date
    From: Vasily Averin <vvs@virtuozzo.com>

    commit ee84f19cbbe9cf7cba2958acb03163fed3ecbb0f upstream.

    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>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    net/netfilter/x_tables.c | 6 +++---
    1 file changed, 3 insertions(+), 3 deletions(-)

    --- a/net/netfilter/x_tables.c
    +++ b/net/netfilter/x_tables.c
    @@ -1551,6 +1551,9 @@ static void *xt_mttg_seq_next(struct seq
    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
    default:
    return NULL;
    }
    -
    - if (ppos != NULL)
    - ++*ppos;
    return trav;
    }


    \
     
     \ /
      Last update: 2020-03-17 12:16    [W:4.255 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site