diff options
author | Alex Shi <alex.shi@linaro.org> | 2016-03-18 12:01:48 +0800 |
---|---|---|
committer | Alex Shi <alex.shi@linaro.org> | 2016-03-18 12:01:48 +0800 |
commit | 421a8ddd1fc901897eee73965b442af4b4dd7095 (patch) | |
tree | e9bd7aef46f35c1857700b9c52ad24f6a68f957c /net | |
parent | 82211c838b558293e48c8fcd816f6609ebc7e4b3 (diff) | |
parent | d439e869d612dd7a338ac75a4afc3646a5e67370 (diff) |
Merge tag 'v3.18.29' into linux-linaro-lsk-v3.18lsk-v3.18-16.03
This is the 3.18.29 stable release
Diffstat (limited to 'net')
-rw-r--r-- | net/ceph/messenger.c | 4 | ||||
-rw-r--r-- | net/ipv6/ip6_gre.c | 1 | ||||
-rw-r--r-- | net/ipv6/ip6_output.c | 3 | ||||
-rw-r--r-- | net/sunrpc/cache.c | 2 |
4 files changed, 7 insertions, 3 deletions
diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c index 56a65536c8f1..1519051603ff 100644 --- a/net/ceph/messenger.c +++ b/net/ceph/messenger.c @@ -2287,7 +2287,7 @@ static int read_partial_message(struct ceph_connection *con) con->in_base_pos = -front_len - middle_len - data_len - sizeof(m->footer); con->in_tag = CEPH_MSGR_TAG_READY; - return 0; + return 1; } else if ((s64)seq - (s64)con->in_seq > 1) { pr_err("read_partial_message bad seq %lld expected %lld\n", seq, con->in_seq + 1); @@ -2320,7 +2320,7 @@ static int read_partial_message(struct ceph_connection *con) sizeof(m->footer); con->in_tag = CEPH_MSGR_TAG_READY; con->in_seq++; - return 0; + return 1; } BUG_ON(!con->in_msg); diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c index 25cd22c1ddee..1a93a39b2aab 100644 --- a/net/ipv6/ip6_gre.c +++ b/net/ipv6/ip6_gre.c @@ -360,6 +360,7 @@ static void ip6gre_tunnel_uninit(struct net_device *dev) struct ip6_tnl *t = netdev_priv(dev); struct ip6gre_net *ign = net_generic(t->net, ip6gre_net_id); + ip6gre_tunnel_unlink(ign, t); ip6_tnl_dst_reset(netdev_priv(dev)); dev_put(dev); } diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index 7b5cb003ee22..9524b4596bf5 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c @@ -374,6 +374,9 @@ int ip6_forward(struct sk_buff *skb) if (skb->pkt_type != PACKET_HOST) goto drop; + if (unlikely(skb->sk)) + goto drop; + if (skb_warn_if_lro(skb)) goto drop; diff --git a/net/sunrpc/cache.c b/net/sunrpc/cache.c index 48f14003af10..14d38ec5e53d 100644 --- a/net/sunrpc/cache.c +++ b/net/sunrpc/cache.c @@ -1230,7 +1230,7 @@ int qword_get(char **bpp, char *dest, int bufsize) if (bp[0] == '\\' && bp[1] == 'x') { /* HEX STRING */ bp += 2; - while (len < bufsize) { + while (len < bufsize - 1) { int h, l; h = hex_to_bin(bp[0]); |