aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-05-14 17:15:06 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-05-14 17:15:06 -0400
commit272911b889f47aa5bc3e004804fc2382f0ac6ce6 (patch)
treeb449be1d6161bee605a179f372df42fe164cd66d /net
parent6ba5b85fd4b1bd72ba26cb7d50c7580004df68ac (diff)
parent98397fc547e3f4553553a30ea56fa34d613f0a4c (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.c2
-rw-r--r--net/ipv6/route.c2
-rw-r--r--net/netfilter/nf_conntrack_core.c4
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
1779int nf_conntrack_init_net(struct net *net) 1779int 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