diff options
author | David S. Miller <davem@davemloft.net> | 2013-10-23 16:55:04 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-10-23 16:55:04 -0400 |
commit | afb14c7cb66c0401237b181131fd3d6bd4810909 (patch) | |
tree | e87dec56dd5b20926aa4a35449e1c463d1d2db00 /net/ipv6 | |
parent | 320437af954cbe66478f1f5e8b34cb5a8d072191 (diff) | |
parent | b416c144f46af1a30ddfa4e4319a8f077381ad63 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf
Pablo Neira Ayuso says:
====================
The following patchset contains three netfilter fixes for your net
tree, they are:
* A couple of fixes to resolve info leak to userspace due to uninitialized
memory area in ulogd, from Mathias Krause.
* Fix instruction ordering issues that may lead to the access of
uninitialized data in x_tables. The problem involves the table update
(producer) and the main packet matching (consumer) routines. Detected in
SMP ARMv7, from Will Deacon.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6')
-rw-r--r-- | net/ipv6/netfilter/ip6_tables.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/net/ipv6/netfilter/ip6_tables.c b/net/ipv6/netfilter/ip6_tables.c index 44400c216dc6..710238f58aa9 100644 --- a/net/ipv6/netfilter/ip6_tables.c +++ b/net/ipv6/netfilter/ip6_tables.c | |||
@@ -349,6 +349,11 @@ ip6t_do_table(struct sk_buff *skb, | |||
349 | local_bh_disable(); | 349 | local_bh_disable(); |
350 | addend = xt_write_recseq_begin(); | 350 | addend = xt_write_recseq_begin(); |
351 | private = table->private; | 351 | private = table->private; |
352 | /* | ||
353 | * Ensure we load private-> members after we've fetched the base | ||
354 | * pointer. | ||
355 | */ | ||
356 | smp_read_barrier_depends(); | ||
352 | cpu = smp_processor_id(); | 357 | cpu = smp_processor_id(); |
353 | table_base = private->entries[cpu]; | 358 | table_base = private->entries[cpu]; |
354 | jumpstack = (struct ip6t_entry **)private->jumpstack[cpu]; | 359 | jumpstack = (struct ip6t_entry **)private->jumpstack[cpu]; |