Here is a fix to the DECnet rules compare function where we used 32bit values rather than 16bit values. Spotted by Patrick McHardy. Signed-off-by: Steven Whitehouse <steve@chygwyn.com> Signed-off-by: David S. Miller <davem@davemloft.net>
@@ -197,10 +197,10 @@ static int dn_fib_rule_compare(struct fib_rule *rule, struct fib_rule_hdr *frh,
return 0;
#endif
- if (tb[FRA_SRC] && (r->src != nla_get_u32(tb[FRA_SRC])))
+ if (tb[FRA_SRC] && (r->src != nla_get_u16(tb[FRA_SRC])))
- if (tb[FRA_DST] && (r->dst != nla_get_u32(tb[FRA_DST])))
+ if (tb[FRA_DST] && (r->dst != nla_get_u16(tb[FRA_DST])))
return 1;