bridge: vlan: fix possible null vlgrp deref while registering new port
authorNikolay Aleksandrov <nikolay@cumulusnetworks.com>
Wed, 30 Sep 2015 18:16:52 +0000 (20:16 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 2 Oct 2015 01:24:04 +0000 (18:24 -0700)
commit468e7944589c7f096bb4ea14db17980aa6c2766c
tree473b882e2365c413e85cef4adfef8ee41a4a819f
parent8af78b6487856d8a896ba15e9255b8e5fa91eb5f
bridge: vlan: fix possible null vlgrp deref while registering new port

While a new port is being initialized the rx_handler gets set, but the
vlans get initialized later in br_add_if() and in that window if we
receive a frame with a link-local address we can try to dereference
p->vlgrp in:
br_handle_frame() -> br_handle_local_finish() -> br_should_learn()

Fix this by checking vlgrp before using it.

Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/bridge/br_vlan.c