diff options
| author | Herbert Xu <herbert@gondor.apana.org.au> | 2004-09-22 23:20:02 -0700 |
|---|---|---|
| committer | David S. Miller <davem@kernel.bkbits.net> | 2004-09-22 23:20:02 -0700 |
| commit | 559b540de3d2d92c26e0753e473b4fcbd03116fd (patch) | |
| tree | ff78187271fca49a498e432eb8fc2a765415ce3e | |
| parent | 5066446ff2a1448a2c9f40fe4e24e18afde2d689 (diff) | |
[IPV4]: Missing TOS checks after fib_find_alias
It looks like some of the places where FIB_SCAN_TOS macros were used
have lost the tos check. This patch adds them back.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
| -rw-r--r-- | net/ipv4/fib_hash.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/net/ipv4/fib_hash.c b/net/ipv4/fib_hash.c index deb43438f48f..15cd8e55b796 100644 --- a/net/ipv4/fib_hash.c +++ b/net/ipv4/fib_hash.c @@ -538,6 +538,8 @@ fn_hash_insert(struct fib_table *tb, struct rtmsg *r, struct kern_rta *rta, */ fa_orig = fa; list_for_each_entry(fa, fa_orig->fa_list.prev, fa_list) { + if (fa->fa_tos != tos) + break; if (fa->fa_info->fib_priority != fi->fib_priority) break; if (fa->fa_type == type && @@ -639,6 +641,9 @@ fn_hash_delete(struct fib_table *tb, struct rtmsg *r, struct kern_rta *rta, list_for_each_entry(fa, fa_head, fa_list) { struct fib_info *fi = fa->fa_info; + if (fa->fa_tos != tos) + break; + if ((!r->rtm_type || fa->fa_type == r->rtm_type) && (r->rtm_scope == RT_SCOPE_NOWHERE || |
