Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma
[linux-2.6-microblaze.git] / net / ipv4 / fib_semantics.c
index 1f75dc6..b5400ce 100644 (file)
@@ -973,7 +973,7 @@ bool fib_metrics_match(struct fib_config *cfg, struct fib_info *fi)
                        char tmp[TCP_CA_NAME_MAX];
                        bool ecn_ca = false;
 
-                       nla_strlcpy(tmp, nla, sizeof(tmp));
+                       nla_strscpy(tmp, nla, sizeof(tmp));
                        val = tcp_ca_get_key_by_name(fi->fib_net, tmp, &ecn_ca);
                } else {
                        if (nla_len(nla) != sizeof(u32))
@@ -1641,9 +1641,8 @@ int fib_nexthop_info(struct sk_buff *skb, const struct fib_nh_common *nhc,
                break;
        }
 
-       *flags |= (nhc->nhc_flags & RTNH_F_ONLINK);
-       if (nhc->nhc_flags & RTNH_F_OFFLOAD)
-               *flags |= RTNH_F_OFFLOAD;
+       *flags |= (nhc->nhc_flags &
+                  (RTNH_F_ONLINK | RTNH_F_OFFLOAD | RTNH_F_TRAP));
 
        if (!skip_oif && nhc->nhc_dev &&
            nla_put_u32(skb, RTA_OIF, nhc->nhc_dev->ifindex))