|
@@ -2474,8 +2474,12 @@ static int rt6_fill_node(struct net *net,
|
|
|
|
|
|
rcu_read_lock();
|
|
|
n = dst_get_neighbour_noref(&rt->dst);
|
|
|
- if (n)
|
|
|
- NLA_PUT(skb, RTA_GATEWAY, 16, &n->primary_key);
|
|
|
+ if (n) {
|
|
|
+ if (nla_put(skb, RTA_GATEWAY, 16, &n->primary_key) < 0) {
|
|
|
+ rcu_read_unlock();
|
|
|
+ goto nla_put_failure;
|
|
|
+ }
|
|
|
+ }
|
|
|
rcu_read_unlock();
|
|
|
|
|
|
if (rt->dst.dev)
|