diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-05-14 17:15:06 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-05-14 17:15:06 -0400 |
commit | 272911b889f47aa5bc3e004804fc2382f0ac6ce6 (patch) | |
tree | b449be1d6161bee605a179f372df42fe164cd66d /net | |
parent | 6ba5b85fd4b1bd72ba26cb7d50c7580004df68ac (diff) | |
parent | 98397fc547e3f4553553a30ea56fa34d613f0a4c (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking fixes from David Miller:
1) Fix mvneta/bm dependencies, from Arnd Bergmann.
2) RX completion hw bug workaround in bnxt_en, from Michael Chan.
3) Kernel pointer leak in nf_conntrack, from Linus.
4) Hoplimit route attribute limits not enforced properly, from Paolo
Abeni.
5) qlcnic driver NULL deref fix from Dan Carpenter.
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
arm64: bpf: jit JMP_JSET_{X,K}
net/route: enforce hoplimit max value
nf_conntrack: avoid kernel pointer value leak in slab name
drivers: net: xgene: fix register offset
drivers: net: xgene: fix statistics counters race condition
drivers: net: xgene: fix ununiform latency across queues
drivers: net: xgene: fix sharing of irqs
drivers: net: xgene: fix IPv4 forward crash
xen-netback: fix extra_info handling in xenvif_tx_err()
net: mvneta: bm: fix dependencies again
bnxt_en: Add workaround to detect bad opaque in rx completion (part 2)
bnxt_en: Add workaround to detect bad opaque in rx completion (part 1)
qlcnic: potential NULL dereference in qlcnic_83xx_get_minidump_template()
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv4/fib_semantics.c | 2 | ||||
-rw-r--r-- | net/ipv6/route.c | 2 | ||||
-rw-r--r-- | net/netfilter/nf_conntrack_core.c | 4 |
3 files changed, 7 insertions, 1 deletions
diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c index d97268e8ff10..2b68418c7198 100644 --- a/net/ipv4/fib_semantics.c +++ b/net/ipv4/fib_semantics.c | |||
@@ -975,6 +975,8 @@ fib_convert_metrics(struct fib_info *fi, const struct fib_config *cfg) | |||
975 | val = 65535 - 40; | 975 | val = 65535 - 40; |
976 | if (type == RTAX_MTU && val > 65535 - 15) | 976 | if (type == RTAX_MTU && val > 65535 - 15) |
977 | val = 65535 - 15; | 977 | val = 65535 - 15; |
978 | if (type == RTAX_HOPLIMIT && val > 255) | ||
979 | val = 255; | ||
978 | if (type == RTAX_FEATURES && (val & ~RTAX_FEATURE_MASK)) | 980 | if (type == RTAX_FEATURES && (val & ~RTAX_FEATURE_MASK)) |
979 | return -EINVAL; | 981 | return -EINVAL; |
980 | fi->fib_metrics[type - 1] = val; | 982 | fi->fib_metrics[type - 1] = val; |
diff --git a/net/ipv6/route.c b/net/ipv6/route.c index d916d6ab9ad2..6f32944e0223 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c | |||
@@ -1750,6 +1750,8 @@ static int ip6_convert_metrics(struct mx6_config *mxc, | |||
1750 | } else { | 1750 | } else { |
1751 | val = nla_get_u32(nla); | 1751 | val = nla_get_u32(nla); |
1752 | } | 1752 | } |
1753 | if (type == RTAX_HOPLIMIT && val > 255) | ||
1754 | val = 255; | ||
1753 | if (type == RTAX_FEATURES && (val & ~RTAX_FEATURE_MASK)) | 1755 | if (type == RTAX_FEATURES && (val & ~RTAX_FEATURE_MASK)) |
1754 | goto err; | 1756 | goto err; |
1755 | 1757 | ||
diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c index 895d11dced3c..e27fd17c6743 100644 --- a/net/netfilter/nf_conntrack_core.c +++ b/net/netfilter/nf_conntrack_core.c | |||
@@ -1778,6 +1778,7 @@ void nf_conntrack_init_end(void) | |||
1778 | 1778 | ||
1779 | int nf_conntrack_init_net(struct net *net) | 1779 | int nf_conntrack_init_net(struct net *net) |
1780 | { | 1780 | { |
1781 | static atomic64_t unique_id; | ||
1781 | int ret = -ENOMEM; | 1782 | int ret = -ENOMEM; |
1782 | int cpu; | 1783 | int cpu; |
1783 | 1784 | ||
@@ -1800,7 +1801,8 @@ int nf_conntrack_init_net(struct net *net) | |||
1800 | if (!net->ct.stat) | 1801 | if (!net->ct.stat) |
1801 | goto err_pcpu_lists; | 1802 | goto err_pcpu_lists; |
1802 | 1803 | ||
1803 | net->ct.slabname = kasprintf(GFP_KERNEL, "nf_conntrack_%p", net); | 1804 | net->ct.slabname = kasprintf(GFP_KERNEL, "nf_conntrack_%llu", |
1805 | (u64)atomic64_inc_return(&unique_id)); | ||
1804 | if (!net->ct.slabname) | 1806 | if (!net->ct.slabname) |
1805 | goto err_slabname; | 1807 | goto err_slabname; |
1806 | 1808 | ||