]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
ipv4/udp: Verify multicast group is ours in upd_v4_early_demux()
authorShawn Bohrer <sbohrer@rgmadvisors.com>
Wed, 3 Jun 2015 21:27:38 +0000 (16:27 -0500)
committerSasha Levin <sasha.levin@oracle.com>
Mon, 15 Jun 2015 18:26:54 +0000 (14:26 -0400)
commiteee3f32977fe915c59a5abf5e312d66ac387d389
treef85e989898a8fd33402372a51ffc91fefd325c96
parentfe38ed618ce5e0f8c7f7e9f47497c3637a0ffbd2
ipv4/udp: Verify multicast group is ours in upd_v4_early_demux()

[ Upstream commit 6e540309326188f769e03bb4c6dd8ff6752930c2 ]

421b3885bf6d56391297844f43fb7154a6396e12 "udp: ipv4: Add udp early
demux" introduced a regression that allowed sockets bound to INADDR_ANY
to receive packets from multicast groups that the socket had not joined.
For example a socket that had joined 224.168.2.9 could also receive
packets from 225.168.2.9 despite not having joined that group if
ip_early_demux is enabled.

Fix this by calling ip_check_mc_rcu() in udp_v4_early_demux() to verify
that the multicast packet is indeed ours.

Signed-off-by: Shawn Bohrer <sbohrer@rgmadvisors.com>
Reported-by: Yurij M. Plotnikov <Yurij.Plotnikov@oktetlabs.ru>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
net/ipv4/udp.c