diff options
Diffstat (limited to 'net/decnet/dn_rules.c')
| -rw-r--r-- | net/decnet/dn_rules.c | 14 | 
1 files changed, 7 insertions, 7 deletions
diff --git a/net/decnet/dn_rules.c b/net/decnet/dn_rules.c index f65c9ddaee4..e65f2c856e0 100644 --- a/net/decnet/dn_rules.c +++ b/net/decnet/dn_rules.c @@ -177,11 +177,11 @@ static int dn_fib_rule_compare(struct fib_rule *rule, struct fib_rule_hdr *frh,  	return 1;  } -unsigned dnet_addr_type(__le16 addr) +unsigned int dnet_addr_type(__le16 addr)  {  	struct flowidn fld = { .daddr = addr };  	struct dn_fib_res res; -	unsigned ret = RTN_UNICAST; +	unsigned int ret = RTN_UNICAST;  	struct dn_fib_table *tb = dn_fib_get_table(RT_TABLE_LOCAL, 0);  	res.r = NULL; @@ -204,11 +204,11 @@ static int dn_fib_rule_fill(struct fib_rule *rule, struct sk_buff *skb,  	frh->src_len = r->src_len;  	frh->tos = 0; -	if (r->dst_len) -		NLA_PUT_LE16(skb, FRA_DST, r->dst); -	if (r->src_len) -		NLA_PUT_LE16(skb, FRA_SRC, r->src); - +	if ((r->dst_len && +	     nla_put_le16(skb, FRA_DST, r->dst)) || +	    (r->src_len && +	     nla_put_le16(skb, FRA_SRC, r->src))) +		goto nla_put_failure;  	return 0;  nla_put_failure:  |