• James Morris's avatar
    [IPV6]: fix flowlabel seqfile handling · 1b7c2dbc
    James Morris authored
    There's a bug in the seqfile show operation for flowlabel objects, where 
    each hash chain is traversed cumulatively for each element.  The following 
    function is called for each element of each chain:
    
    static void ip6fl_fl_seq_show(struct seq_file *seq, struct ip6_flowlabel *fl)
    {
            while(fl) {
                    seq_printf...
    		
    		fl = fl->next;
    	}
    }
    
    Thus, objects can appear mutliple times when reading 
    /proc/net/ip6_flowlabel, as the above is called for each element in the 
    chain.
    
    The solution is to remove the while() loop from the above, and traverse 
    each chain exactly once, per the patch below.  This also removes the 
    ip6fl_fl_seq_show() function, which does nothing else.
    Signed-off-by: default avatarJames Morris <jmorris@namei.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    1b7c2dbc
ip6_flowlabel.c 15.3 KB