Thomas Graf wrote:
> @@ -242,10 +239,10 @@ static int fib4_rule_compare(struct fib_
> return 0;
> #endif
>
> - if (tb[FRA_SRC] && (rule4->src != nla_get_be32(tb[FRA_SRC])))
> + if (frh->src_len && (rule4->src != nla_get_be32(tb[FRA_SRC])))
> return 0;
>
> - if (tb[FRA_DST] && (rule4->dst != nla_get_be32(tb[FRA_DST])))
> + if (frh->dst_len && (rule4->dst != nla_get_be32(tb[FRA_DST])))
> return 0;
>
The presence of the attributes when src_len/dst_len is non-zero
is only verified in fib_newrule, so this looks like it might crash
when something broken sets src_len/dst_len to a non-zero value
without actually adding the attributes.
Other than that it looks fine.
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
|