• Alexander Duyck's avatar
    fib_trie: Correct /proc/net/route off by one error · fd0285a3
    Alexander Duyck authored
    The display of /proc/net/route has had a couple issues due to the fact that
    when I originally rewrote most of fib_trie I made it so that the iterator
    was tracking the next value to use instead of the current.
    
    In addition it had an off by 1 error where I was tracking the first piece
    of data as position 0, even though in reality that belonged to the
    SEQ_START_TOKEN.
    
    This patch updates the code so the iterator tracks the last reported
    position and key instead of the next expected position and key.  In
    addition it shifts things so that all of the leaves start at 1 instead of
    trying to report leaves starting with offset 0 as being valid.  With these
    two issues addressed this should resolve any off by one errors that were
    present in the display of /proc/net/route.
    
    Fixes: 25b97c01 ("ipv4: off-by-one in continuation handling in /proc/net/route")
    Cc: Andy Whitcroft <apw@canonical.com>
    Reported-by: default avatarJason Baron <jbaron@akamai.com>
    Tested-by: default avatarJason Baron <jbaron@akamai.com>
    Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    fd0285a3
fib_trie.c 63.3 KB