diff options
author | Stephen Hemminger <shemminger@vyatta.com> | 2008-02-12 00:12:49 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-02-12 20:53:30 -0500 |
commit | ec28cf738d899e9d0652108e1986101771aacb2e (patch) | |
tree | e848267fc6f9946075a0440be8b0a8ac6ef0c58a /net | |
parent | e4f8b5d4edc1edb0709531bd1a342655d5e8b98e (diff) |
fib_trie: handle empty tree
This fixes possible problems when trie_firstleaf() returns NULL
to trie_leafindex().
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv4/fib_trie.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c index f5fba3f71c06..2d895274b7f8 100644 --- a/net/ipv4/fib_trie.c +++ b/net/ipv4/fib_trie.c | |||
@@ -1762,11 +1762,9 @@ static struct leaf *trie_leafindex(struct trie *t, int index) | |||
1762 | { | 1762 | { |
1763 | struct leaf *l = trie_firstleaf(t); | 1763 | struct leaf *l = trie_firstleaf(t); |
1764 | 1764 | ||
1765 | while (index-- > 0) { | 1765 | while (l && index-- > 0) |
1766 | l = trie_nextleaf(l); | 1766 | l = trie_nextleaf(l); |
1767 | if (!l) | 1767 | |
1768 | break; | ||
1769 | } | ||
1770 | return l; | 1768 | return l; |
1771 | } | 1769 | } |
1772 | 1770 | ||