* [PATCH 0/7] netfilter updates for net-next (batch 3)
@ 2012-05-16 23:06 pablo
2012-05-16 23:06 ` [PATCH 1/7] netfilter: xt_hashlimit: use _ALL macro to reject unknown flag bits pablo
` (7 more replies)
0 siblings, 8 replies; 12+ messages in thread
From: pablo @ 2012-05-16 23:06 UTC (permalink / raw)
To: netfilter-devel; +Cc: davem, netdev
From: Pablo Neira Ayuso <pablo@netfilter.org>
Hi David,
The following patchset contains small updates for net-next, more relevantly:
* One fix for potential NULL dereference in xt_HMARK by Dan Carpenter.
* Conversion to use _ALL macro in xt_hashlimit as you suggested by
Florian Westphal.
* One fix for timeout overflow from Jozsef Kadlecsik.
* Replace usage of modulus for hash calculation in xt_HMARK as you suggested
from myself.
You can pull these changes from:
git://1984.lsi.us.es/net-next master
Thanks!
Dan Carpenter (1):
netfilter: xt_HMARK: potential NULL dereference in get_inner_hdr()
Eldad Zack (1):
netfilter: xt_CT: remove redundant header include
Florian Westphal (1):
netfilter: xt_hashlimit: use _ALL macro to reject unknown flag bits
Jozsef Kadlecsik (1):
netfilter: ipset: fix timeout value overflow bug
Pablo Neira Ayuso (3):
netfilter: xt_HMARK: modulus is expensive for hash calculation
netfilter: nf_ct_tcp: extend log message for invalid ignored packets
netfilter: nf_ct_h323: fix usage of MODULE_ALIAS_NFCT_HELPER
include/linux/netfilter/ipset/ip_set_timeout.h | 4 ++++
include/linux/netfilter/xt_hashlimit.h | 6 ++++--
net/netfilter/nf_conntrack_h323_main.c | 4 +++-
net/netfilter/nf_conntrack_proto_tcp.c | 3 ++-
net/netfilter/xt_CT.c | 1 -
net/netfilter/xt_HMARK.c | 4 ++--
net/netfilter/xt_hashlimit.c | 2 +-
net/netfilter/xt_set.c | 15 +++++++++++++--
8 files changed, 29 insertions(+), 10 deletions(-)
--
1.7.10
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 1/7] netfilter: xt_hashlimit: use _ALL macro to reject unknown flag bits
2012-05-16 23:06 [PATCH 0/7] netfilter updates for net-next (batch 3) pablo
@ 2012-05-16 23:06 ` pablo
2012-05-16 23:06 ` [PATCH 2/7] netfilter: xt_HMARK: potential NULL dereference in get_inner_hdr() pablo
` (6 subsequent siblings)
7 siblings, 0 replies; 12+ messages in thread
From: pablo @ 2012-05-16 23:06 UTC (permalink / raw)
To: netfilter-devel; +Cc: davem, netdev
From: Florian Westphal <fw@strlen.de>
David Miller says:
The canonical way to validate if the set bits are in a valid
range is to have a "_ALL" macro, and test:
if (val & ~XT_HASHLIMIT_ALL)
goto err;"
make it so.
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---
include/linux/netfilter/xt_hashlimit.h | 6 ++++--
net/netfilter/xt_hashlimit.c | 2 +-
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/include/linux/netfilter/xt_hashlimit.h b/include/linux/netfilter/xt_hashlimit.h
index 05fe799..c42e52f 100644
--- a/include/linux/netfilter/xt_hashlimit.h
+++ b/include/linux/netfilter/xt_hashlimit.h
@@ -22,10 +22,12 @@ enum {
XT_HASHLIMIT_HASH_SPT = 1 << 3,
XT_HASHLIMIT_INVERT = 1 << 4,
XT_HASHLIMIT_BYTES = 1 << 5,
+};
#ifdef __KERNEL__
- XT_HASHLIMIT_MAX = 1 << 6,
+#define XT_HASHLIMIT_ALL (XT_HASHLIMIT_HASH_DIP | XT_HASHLIMIT_HASH_DPT | \
+ XT_HASHLIMIT_HASH_SIP | XT_HASHLIMIT_HASH_SPT | \
+ XT_HASHLIMIT_INVERT | XT_HASHLIMIT_BYTES)
#endif
-};
struct hashlimit_cfg {
__u32 mode; /* bitmask of XT_HASHLIMIT_HASH_* */
diff --git a/net/netfilter/xt_hashlimit.c b/net/netfilter/xt_hashlimit.c
index 5d5af1d..26a668a 100644
--- a/net/netfilter/xt_hashlimit.c
+++ b/net/netfilter/xt_hashlimit.c
@@ -647,7 +647,7 @@ static int hashlimit_mt_check(const struct xt_mtchk_param *par)
return -EINVAL;
}
- if (info->cfg.mode >= XT_HASHLIMIT_MAX) {
+ if (info->cfg.mode & ~XT_HASHLIMIT_ALL) {
pr_info("Unknown mode mask %X, kernel too old?\n",
info->cfg.mode);
return -EINVAL;
--
1.7.10
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 2/7] netfilter: xt_HMARK: potential NULL dereference in get_inner_hdr()
2012-05-16 23:06 [PATCH 0/7] netfilter updates for net-next (batch 3) pablo
2012-05-16 23:06 ` [PATCH 1/7] netfilter: xt_hashlimit: use _ALL macro to reject unknown flag bits pablo
@ 2012-05-16 23:06 ` pablo
2012-05-16 23:06 ` [PATCH 3/7] netfilter: xt_HMARK: modulus is expensive for hash calculation pablo
` (5 subsequent siblings)
7 siblings, 0 replies; 12+ messages in thread
From: pablo @ 2012-05-16 23:06 UTC (permalink / raw)
To: netfilter-devel; +Cc: davem, netdev
From: Dan Carpenter <dan.carpenter@oracle.com>
There is a typo in the error checking and "&&" was used instead of "||".
If skb_header_pointer() returns NULL then it leads to a NULL
dereference.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Hans Schillstrom <hans.schillstrom@ericsson.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---
net/netfilter/xt_HMARK.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/netfilter/xt_HMARK.c b/net/netfilter/xt_HMARK.c
index 32fbd73..5817d03 100644
--- a/net/netfilter/xt_HMARK.c
+++ b/net/netfilter/xt_HMARK.c
@@ -223,7 +223,7 @@ static int get_inner_hdr(const struct sk_buff *skb, int iphsz, int *nhoff)
/* Not enough header? */
icmph = skb_header_pointer(skb, *nhoff + iphsz, sizeof(_ih), &_ih);
- if (icmph == NULL && icmph->type > NR_ICMP_TYPES)
+ if (icmph == NULL || icmph->type > NR_ICMP_TYPES)
return 0;
/* Error message? */
--
1.7.10
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 3/7] netfilter: xt_HMARK: modulus is expensive for hash calculation
2012-05-16 23:06 [PATCH 0/7] netfilter updates for net-next (batch 3) pablo
2012-05-16 23:06 ` [PATCH 1/7] netfilter: xt_hashlimit: use _ALL macro to reject unknown flag bits pablo
2012-05-16 23:06 ` [PATCH 2/7] netfilter: xt_HMARK: potential NULL dereference in get_inner_hdr() pablo
@ 2012-05-16 23:06 ` pablo
2012-05-17 8:16 ` David Laight
2012-05-16 23:06 ` [PATCH 4/7] netfilter: nf_ct_tcp: extend log message for invalid ignored packets pablo
` (4 subsequent siblings)
7 siblings, 1 reply; 12+ messages in thread
From: pablo @ 2012-05-16 23:06 UTC (permalink / raw)
To: netfilter-devel; +Cc: davem, netdev
From: Pablo Neira Ayuso <pablo@netfilter.org>
Use:
((u64)(HASH_VAL * HASH_SIZE)) >> 32
as suggested by David S. Miller.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---
net/netfilter/xt_HMARK.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/netfilter/xt_HMARK.c b/net/netfilter/xt_HMARK.c
index 5817d03..0a96a43 100644
--- a/net/netfilter/xt_HMARK.c
+++ b/net/netfilter/xt_HMARK.c
@@ -109,7 +109,7 @@ hmark_hash(struct hmark_tuple *t, const struct xt_hmark_info *info)
hash = jhash_3words(t->src, t->dst, t->uports.v32, info->hashrnd);
hash = hash ^ (t->proto & info->proto_mask);
- return (hash % info->hmodulus) + info->hoffset;
+ return (((u64)hash * info->hmodulus) >> 32) + info->hoffset;
}
static void
--
1.7.10
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 4/7] netfilter: nf_ct_tcp: extend log message for invalid ignored packets
2012-05-16 23:06 [PATCH 0/7] netfilter updates for net-next (batch 3) pablo
` (2 preceding siblings ...)
2012-05-16 23:06 ` [PATCH 3/7] netfilter: xt_HMARK: modulus is expensive for hash calculation pablo
@ 2012-05-16 23:06 ` pablo
2012-05-16 23:06 ` [PATCH 5/7] netfilter: ipset: fix timeout value overflow bug pablo
` (3 subsequent siblings)
7 siblings, 0 replies; 12+ messages in thread
From: pablo @ 2012-05-16 23:06 UTC (permalink / raw)
To: netfilter-devel; +Cc: davem, netdev
From: Pablo Neira Ayuso <pablo@netfilter.org>
Extend log message if packets are ignored to include the TCP state, ie.
replace:
[ 3968.070196] nf_ct_tcp: invalid packet ignored IN= OUT= SRC=...
by:
[ 3968.070196] nf_ct_tcp: invalid packet ignored in state ESTABLISHED IN= OUT= SRC=...
This information is useful to know in what state we were while ignoring the
packet.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Acked-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
---
net/netfilter/nf_conntrack_proto_tcp.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/net/netfilter/nf_conntrack_proto_tcp.c b/net/netfilter/nf_conntrack_proto_tcp.c
index 4dfbfa8..21ff1a9 100644
--- a/net/netfilter/nf_conntrack_proto_tcp.c
+++ b/net/netfilter/nf_conntrack_proto_tcp.c
@@ -952,7 +952,8 @@ static int tcp_packet(struct nf_conn *ct,
spin_unlock_bh(&ct->lock);
if (LOG_INVALID(net, IPPROTO_TCP))
nf_log_packet(pf, 0, skb, NULL, NULL, NULL,
- "nf_ct_tcp: invalid packet ignored ");
+ "nf_ct_tcp: invalid packet ignored in "
+ "state %s ", tcp_conntrack_names[old_state]);
return NF_ACCEPT;
case TCP_CONNTRACK_MAX:
/* Invalid packet */
--
1.7.10
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 5/7] netfilter: ipset: fix timeout value overflow bug
2012-05-16 23:06 [PATCH 0/7] netfilter updates for net-next (batch 3) pablo
` (3 preceding siblings ...)
2012-05-16 23:06 ` [PATCH 4/7] netfilter: nf_ct_tcp: extend log message for invalid ignored packets pablo
@ 2012-05-16 23:06 ` pablo
2012-05-16 23:06 ` [PATCH 6/7] netfilter: xt_CT: remove redundant header include pablo
` (2 subsequent siblings)
7 siblings, 0 replies; 12+ messages in thread
From: pablo @ 2012-05-16 23:06 UTC (permalink / raw)
To: netfilter-devel; +Cc: davem, netdev
From: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Large timeout parameters could result wrong timeout values due to
an overflow at msec to jiffies conversion (reported by Andreas Herz)
[ This patch was mangled by Pablo Neira Ayuso since David Laight and
Eric Dumazet noticed that we were using hardcoded 1000 instead of
MSEC_PER_SEC to calculate the timeout ]
Signed-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---
include/linux/netfilter/ipset/ip_set_timeout.h | 4 ++++
net/netfilter/xt_set.c | 15 +++++++++++++--
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/include/linux/netfilter/ipset/ip_set_timeout.h b/include/linux/netfilter/ipset/ip_set_timeout.h
index 4792320..41d9cfa 100644
--- a/include/linux/netfilter/ipset/ip_set_timeout.h
+++ b/include/linux/netfilter/ipset/ip_set_timeout.h
@@ -30,6 +30,10 @@ ip_set_timeout_uget(struct nlattr *tb)
{
unsigned int timeout = ip_set_get_h32(tb);
+ /* Normalize to fit into jiffies */
+ if (timeout > UINT_MAX/MSEC_PER_SEC)
+ timeout = UINT_MAX/MSEC_PER_SEC;
+
/* Userspace supplied TIMEOUT parameter: adjust crazy size */
return timeout == IPSET_NO_TIMEOUT ? IPSET_NO_TIMEOUT - 1 : timeout;
}
diff --git a/net/netfilter/xt_set.c b/net/netfilter/xt_set.c
index 0ec8138..035960e 100644
--- a/net/netfilter/xt_set.c
+++ b/net/netfilter/xt_set.c
@@ -44,6 +44,14 @@ const struct ip_set_adt_opt n = { \
.cmdflags = cfs, \
.timeout = t, \
}
+#define ADT_MOPT(n, f, d, fs, cfs, t) \
+struct ip_set_adt_opt n = { \
+ .family = f, \
+ .dim = d, \
+ .flags = fs, \
+ .cmdflags = cfs, \
+ .timeout = t, \
+}
/* Revision 0 interface: backward compatible with netfilter/iptables */
@@ -296,11 +304,14 @@ static unsigned int
set_target_v2(struct sk_buff *skb, const struct xt_action_param *par)
{
const struct xt_set_info_target_v2 *info = par->targinfo;
- ADT_OPT(add_opt, par->family, info->add_set.dim,
- info->add_set.flags, info->flags, info->timeout);
+ ADT_MOPT(add_opt, par->family, info->add_set.dim,
+ info->add_set.flags, info->flags, info->timeout);
ADT_OPT(del_opt, par->family, info->del_set.dim,
info->del_set.flags, 0, UINT_MAX);
+ /* Normalize to fit into jiffies */
+ if (add_opt.timeout > UINT_MAX/MSEC_PER_SEC)
+ add_opt.timeout = UINT_MAX/MSEC_PER_SEC;
if (info->add_set.index != IPSET_INVALID_ID)
ip_set_add(info->add_set.index, skb, par, &add_opt);
if (info->del_set.index != IPSET_INVALID_ID)
--
1.7.10
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 6/7] netfilter: xt_CT: remove redundant header include
2012-05-16 23:06 [PATCH 0/7] netfilter updates for net-next (batch 3) pablo
` (4 preceding siblings ...)
2012-05-16 23:06 ` [PATCH 5/7] netfilter: ipset: fix timeout value overflow bug pablo
@ 2012-05-16 23:06 ` pablo
2012-05-16 23:06 ` [PATCH 7/7] netfilter: nf_ct_h323: fix usage of MODULE_ALIAS_NFCT_HELPER pablo
2012-05-17 0:00 ` [PATCH 0/7] netfilter updates for net-next (batch 3) David Miller
7 siblings, 0 replies; 12+ messages in thread
From: pablo @ 2012-05-16 23:06 UTC (permalink / raw)
To: netfilter-devel; +Cc: davem, netdev
From: Eldad Zack <eldad@fogrefinery.com>
nf_conntrack_l4proto.h is included twice.
Signed-off-by: Eldad Zack <eldad@fogrefinery.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---
net/netfilter/xt_CT.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/net/netfilter/xt_CT.c b/net/netfilter/xt_CT.c
index 3746d8b..a51de9b 100644
--- a/net/netfilter/xt_CT.c
+++ b/net/netfilter/xt_CT.c
@@ -17,7 +17,6 @@
#include <net/netfilter/nf_conntrack_l4proto.h>
#include <net/netfilter/nf_conntrack_helper.h>
#include <net/netfilter/nf_conntrack_ecache.h>
-#include <net/netfilter/nf_conntrack_l4proto.h>
#include <net/netfilter/nf_conntrack_timeout.h>
#include <net/netfilter/nf_conntrack_zones.h>
--
1.7.10
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 7/7] netfilter: nf_ct_h323: fix usage of MODULE_ALIAS_NFCT_HELPER
2012-05-16 23:06 [PATCH 0/7] netfilter updates for net-next (batch 3) pablo
` (5 preceding siblings ...)
2012-05-16 23:06 ` [PATCH 6/7] netfilter: xt_CT: remove redundant header include pablo
@ 2012-05-16 23:06 ` pablo
2012-05-17 0:00 ` [PATCH 0/7] netfilter updates for net-next (batch 3) David Miller
7 siblings, 0 replies; 12+ messages in thread
From: pablo @ 2012-05-16 23:06 UTC (permalink / raw)
To: netfilter-devel; +Cc: davem, netdev
From: Pablo Neira Ayuso <pablo@netfilter.org>
ctnetlink uses the aliases that are created by MODULE_ALIAS_NFCT_HELPER
to auto-load the module based on the helper name. Thus, we have to use
RAS, Q.931 and H.245, not H.323.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---
net/netfilter/nf_conntrack_h323_main.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/net/netfilter/nf_conntrack_h323_main.c b/net/netfilter/nf_conntrack_h323_main.c
index 93c13eb..46d69d7 100644
--- a/net/netfilter/nf_conntrack_h323_main.c
+++ b/net/netfilter/nf_conntrack_h323_main.c
@@ -1830,4 +1830,6 @@ MODULE_AUTHOR("Jing Min Zhao <zhaojingmin@users.sourceforge.net>");
MODULE_DESCRIPTION("H.323 connection tracking helper");
MODULE_LICENSE("GPL");
MODULE_ALIAS("ip_conntrack_h323");
-MODULE_ALIAS_NFCT_HELPER("h323");
+MODULE_ALIAS_NFCT_HELPER("RAS");
+MODULE_ALIAS_NFCT_HELPER("Q.931");
+MODULE_ALIAS_NFCT_HELPER("H.245");
--
1.7.10
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 0/7] netfilter updates for net-next (batch 3)
2012-05-16 23:06 [PATCH 0/7] netfilter updates for net-next (batch 3) pablo
` (6 preceding siblings ...)
2012-05-16 23:06 ` [PATCH 7/7] netfilter: nf_ct_h323: fix usage of MODULE_ALIAS_NFCT_HELPER pablo
@ 2012-05-17 0:00 ` David Miller
7 siblings, 0 replies; 12+ messages in thread
From: David Miller @ 2012-05-17 0:00 UTC (permalink / raw)
To: pablo; +Cc: netfilter-devel, netdev
From: pablo@netfilter.org
Date: Thu, 17 May 2012 01:06:37 +0200
> The following patchset contains small updates for net-next, more relevantly:
>
> * One fix for potential NULL dereference in xt_HMARK by Dan Carpenter.
>
> * Conversion to use _ALL macro in xt_hashlimit as you suggested by
> Florian Westphal.
>
> * One fix for timeout overflow from Jozsef Kadlecsik.
>
> * Replace usage of modulus for hash calculation in xt_HMARK as you suggested
> from myself.
>
> You can pull these changes from:
>
> git://1984.lsi.us.es/net-next master
Pulled, thanks a lot!
^ permalink raw reply [flat|nested] 12+ messages in thread
* RE: [PATCH 3/7] netfilter: xt_HMARK: modulus is expensive for hash calculation
2012-05-16 23:06 ` [PATCH 3/7] netfilter: xt_HMARK: modulus is expensive for hash calculation pablo
@ 2012-05-17 8:16 ` David Laight
2012-05-17 8:39 ` Eric Dumazet
0 siblings, 1 reply; 12+ messages in thread
From: David Laight @ 2012-05-17 8:16 UTC (permalink / raw)
To: pablo, netfilter-devel; +Cc: davem, netdev
> From: Pablo Neira Ayuso <pablo@netfilter.org>
>
> Use:
>
> ((u64)(HASH_VAL * HASH_SIZE)) >> 32
>
> as suggested by David S. Miller.
That (u64) cast is very unlikely to have any effect.
If you want a 64 bit result from the product of two
32 bit values, you have to cast one of the 32 bit values
prior to the multiply - as in the patch below.
David
>
> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
> ---
> net/netfilter/xt_HMARK.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/netfilter/xt_HMARK.c b/net/netfilter/xt_HMARK.c
> index 5817d03..0a96a43 100644
> --- a/net/netfilter/xt_HMARK.c
> +++ b/net/netfilter/xt_HMARK.c
> @@ -109,7 +109,7 @@ hmark_hash(struct hmark_tuple *t, const
> struct xt_hmark_info *info)
> hash = jhash_3words(t->src, t->dst, t->uports.v32,
> info->hashrnd);
> hash = hash ^ (t->proto & info->proto_mask);
>
> - return (hash % info->hmodulus) + info->hoffset;
> + return (((u64)hash * info->hmodulus) >> 32) + info->hoffset;
> }
>
> static void
> --
> 1.7.10
>
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* RE: [PATCH 3/7] netfilter: xt_HMARK: modulus is expensive for hash calculation
2012-05-17 8:16 ` David Laight
@ 2012-05-17 8:39 ` Eric Dumazet
2012-05-17 14:55 ` Pablo Neira Ayuso
0 siblings, 1 reply; 12+ messages in thread
From: Eric Dumazet @ 2012-05-17 8:39 UTC (permalink / raw)
To: David Laight; +Cc: pablo, netfilter-devel, davem, netdev
On Thu, 2012-05-17 at 09:16 +0100, David Laight wrote:
> > From: Pablo Neira Ayuso <pablo@netfilter.org>
> >
> > Use:
> >
> > ((u64)(HASH_VAL * HASH_SIZE)) >> 32
> >
> > as suggested by David S. Miller.
>
> That (u64) cast is very unlikely to have any effect.
> If you want a 64 bit result from the product of two
> 32 bit values, you have to cast one of the 32 bit values
> prior to the multiply - as in the patch below.
Hey, Changelog is a bit wrong (for several reasons) but code is correct.
return (((u64)hash * info->hmodulus) >> 32) + info->hoffset;
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 3/7] netfilter: xt_HMARK: modulus is expensive for hash calculation
2012-05-17 8:39 ` Eric Dumazet
@ 2012-05-17 14:55 ` Pablo Neira Ayuso
0 siblings, 0 replies; 12+ messages in thread
From: Pablo Neira Ayuso @ 2012-05-17 14:55 UTC (permalink / raw)
To: Eric Dumazet; +Cc: David Laight, netfilter-devel, davem, netdev
On Thu, May 17, 2012 at 10:39:28AM +0200, Eric Dumazet wrote:
> On Thu, 2012-05-17 at 09:16 +0100, David Laight wrote:
> > > From: Pablo Neira Ayuso <pablo@netfilter.org>
> > >
> > > Use:
> > >
> > > ((u64)(HASH_VAL * HASH_SIZE)) >> 32
> > >
> > > as suggested by David S. Miller.
> >
> > That (u64) cast is very unlikely to have any effect.
> > If you want a 64 bit result from the product of two
> > 32 bit values, you have to cast one of the 32 bit values
> > prior to the multiply - as in the patch below.
>
> Hey, Changelog is a bit wrong (for several reasons) but code is correct.
>
> return (((u64)hash * info->hmodulus) >> 32) + info->hoffset;
Sorry, for the mistake in the changelog. I copied & pasted it from the
mailing list discussion.
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2012-05-17 14:55 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-16 23:06 [PATCH 0/7] netfilter updates for net-next (batch 3) pablo
2012-05-16 23:06 ` [PATCH 1/7] netfilter: xt_hashlimit: use _ALL macro to reject unknown flag bits pablo
2012-05-16 23:06 ` [PATCH 2/7] netfilter: xt_HMARK: potential NULL dereference in get_inner_hdr() pablo
2012-05-16 23:06 ` [PATCH 3/7] netfilter: xt_HMARK: modulus is expensive for hash calculation pablo
2012-05-17 8:16 ` David Laight
2012-05-17 8:39 ` Eric Dumazet
2012-05-17 14:55 ` Pablo Neira Ayuso
2012-05-16 23:06 ` [PATCH 4/7] netfilter: nf_ct_tcp: extend log message for invalid ignored packets pablo
2012-05-16 23:06 ` [PATCH 5/7] netfilter: ipset: fix timeout value overflow bug pablo
2012-05-16 23:06 ` [PATCH 6/7] netfilter: xt_CT: remove redundant header include pablo
2012-05-16 23:06 ` [PATCH 7/7] netfilter: nf_ct_h323: fix usage of MODULE_ALIAS_NFCT_HELPER pablo
2012-05-17 0:00 ` [PATCH 0/7] netfilter updates for net-next (batch 3) David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).