- net/core/netfilter.c (overlap): Overlap calculation error.
- net/ipv6/netfilter/ip6_tables.c: Misplaced parentheses leads
to pointer calculation error on SMP.
/* Do exclusive ranges overlap? */
static inline int overlap(int min1, int max1, int min2, int max2)
{
- return (min1 >= min2 && min1 < max2)
- || (max1 > min2 && max1 <= max2);
+ return max1 > min2 && min1 < max2;
}
/* Functions to register sockopt ranges (exclusive). */
/* And one copy for every other CPU */
for (i = 1; i < smp_num_cpus; i++) {
- memcpy(newinfo->entries + SMP_ALIGN(newinfo->size*i),
+ memcpy(newinfo->entries + SMP_ALIGN(newinfo->size)*i,
newinfo->entries,
SMP_ALIGN(newinfo->size));
}