]> err.no Git - linux-2.6/commit
[FIB]: full_children & empty_children should be uint, not ushort
authorEric Dumazet <dada1@cosmosbay.com>
Mon, 14 Jan 2008 06:31:44 +0000 (22:31 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 28 Jan 2008 23:02:04 +0000 (15:02 -0800)
commit8d96544475b236a0f319e492f4828aa8c0801c7f
tree874099e668f97c55867349e417e402d33f13250c
parentf16f3026db6fa63cbb0f4a37833562aa999c93e5
[FIB]: full_children & empty_children should be uint, not ushort

If declared as unsigned short, these fields can overflow, and whole
trie logic is broken. I could not make the machine crash, but some
tnode can never be freed.

Note for 64 bit arches : By reordering t_key and parent in [node,
leaf, tnode] structures, we can use 32 bits hole after t_key so that
sizeof(struct tnode) doesnt change after this patch.

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: Robert Olsson <robert.olsson@its.uu.se>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/fib_trie.c