]> git.baikalelectronics.ru Git - kernel.git/commit
bridge: Fix crash with vlan filtering and tcpdump
authorVlad Yasevich <vyasevic@redhat.com>
Fri, 28 Mar 2014 01:51:18 +0000 (21:51 -0400)
committerDavid S. Miller <davem@davemloft.net>
Fri, 28 Mar 2014 21:14:02 +0000 (17:14 -0400)
commit9d6fb0e4222807c1af0aaa3bfb5d9049db4f6247
tree606412dc5f865c5e2b11b6def1b75eca213aca30
parent805a5b61b7323d9828978a8853bdf2c44076cda8
bridge: Fix crash with vlan filtering and tcpdump

When the vlan filtering is enabled on the bridge, but
the filter is not configured on the bridge device itself,
running tcpdump on the bridge device will result in a
an Oops with NULL pointer dereference.  The reason
is that br_pass_frame_up() will bypass the vlan
check because promisc flag is set.  It will then try
to get the table pointer and process the packet based
on the table.  Since the table pointer is NULL, we oops.
Catch this special condition in br_handle_vlan().

Reported-by: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
CC: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
Signed-off-by: Vlad Yasevich <vyasevic@redhat.com>
Acked-by: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/bridge/br_input.c
net/bridge/br_vlan.c