summaryrefslogtreecommitdiff
path: root/net/bridge
diff options
context:
space:
mode:
authorStephen Hemminger <stephen@networkplumber.org>2018-04-27 11:16:09 -0700
committerPablo Neira Ayuso <pablo@netfilter.org>2018-05-08 14:08:12 +0200
commita4995684a949cc1d28fbf09900c47c34b9427ecf (patch)
tree39e08cb32dee46af6f9ea62ef32d4323e98d8ebc /net/bridge
parent2f99aa31cd7a5d667f17dd2924c884c3d2c621ac (diff)
netfilter: bridge: stp fix reference to uninitialized data
The destination mac (destmac) is only valid if EBT_DESTMAC flag is set. Fix by changing the order of the comparison to look for the flag first. Reported-by: syzbot+5c06e318fc558cc27823@syzkaller.appspotmail.com Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net/bridge')
-rw-r--r--net/bridge/netfilter/ebt_stp.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/bridge/netfilter/ebt_stp.c b/net/bridge/netfilter/ebt_stp.c
index 47ba98db145d..46c1fe7637ea 100644
--- a/net/bridge/netfilter/ebt_stp.c
+++ b/net/bridge/netfilter/ebt_stp.c
@@ -161,8 +161,8 @@ static int ebt_stp_mt_check(const struct xt_mtchk_param *par)
/* Make sure the match only receives stp frames */
if (!par->nft_compat &&
(!ether_addr_equal(e->destmac, eth_stp_addr) ||
- !is_broadcast_ether_addr(e->destmsk) ||
- !(e->bitmask & EBT_DESTMAC)))
+ !(e->bitmask & EBT_DESTMAC) ||
+ !is_broadcast_ether_addr(e->destmsk)))
return -EINVAL;
return 0;