From: Patrick McHardy <[EMAIL PROTECTED]>
Date: Tue, 20 Mar 2007 20:58:55 +0100
> Thomas Graf wrote:
> > * Patrick McHardy <[EMAIL PROTECTED]> 2007-03-20 17:59
> >
> >>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
Thomas Graf wrote:
> * Patrick McHardy <[EMAIL PROTECTED]> 2007-03-20 17:59
>
>>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 a
* Patrick McHardy <[EMAIL PROTECTED]> 2007-03-20 17:59
> 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.
Y
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;
>
> -
Based on Patrick's patch:
The fib_rules netlink attribute policy introduced in 2.6.19 broke
userspace compatibilty. When specifying a rule with "from all"
or "to all", iproute adds a zero byte long netlink attribute,
but the policy requires all addresses to have a size equal to
sizeof(struct in_add