diff options
author | Ben Hutchings <ben@decadent.org.uk> | 2012-01-09 14:06:46 -0800 |
---|---|---|
committer | Markus Lehtonen <markus.lehtonen@linux.intel.com> | 2013-04-05 09:12:57 +0300 |
commit | eedd2403a3297dd6a3b46d35fc2d834b2a5eb8f2 (patch) | |
tree | 1731102f6ba77841cf478dd07e2f55da2370b2b9 | |
parent | f130bd7d97212a51998ea5560ec9e5c7edb08d35 (diff) | |
download | kernel-mfld-blackbay-eedd2403a3297dd6a3b46d35fc2d834b2a5eb8f2.tar.gz kernel-mfld-blackbay-eedd2403a3297dd6a3b46d35fc2d834b2a5eb8f2.tar.bz2 kernel-mfld-blackbay-eedd2403a3297dd6a3b46d35fc2d834b2a5eb8f2.zip |
igmp: Avoid zero delay when receiving odd mixture of IGMP queries
commit a8c1f65c79cbbb2f7da782d4c9d15639a9b94b27 upstream.
Commit 5b7c84066733c5dfb0e4016d939757b38de189e4 ('ipv4: correct IGMP
behavior on v3 query during v2-compatibility mode') added yet another
case for query parsing, which can result in max_delay = 0. Substitute
a value of 1, as in the usual v3 case.
Reported-by: Simon McVittie <smcv@debian.org>
References: http://bugs.debian.org/654876
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/ipv4/igmp.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/ipv4/igmp.c b/net/ipv4/igmp.c index d577199eabd..e0d42dbb33f 100644 --- a/net/ipv4/igmp.c +++ b/net/ipv4/igmp.c @@ -875,6 +875,8 @@ static void igmp_heard_query(struct in_device *in_dev, struct sk_buff *skb, * to be intended in a v3 query. */ max_delay = IGMPV3_MRC(ih3->code)*(HZ/IGMP_TIMER_SCALE); + if (!max_delay) + max_delay = 1; /* can't mod w/ 0 */ } else { /* v3 */ if (!pskb_may_pull(skb, sizeof(struct igmpv3_query))) return; |