]> 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)
commit32692d479d027dc656ebdaf133ae26d901cbb3ec
tree606412dc5f865c5e2b11b6def1b75eca213aca30
parent80a414bfac741c143ba0cb751619d9d951caa58e
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