diff options
author | Taehee Yoo | 2022-07-17 16:09:09 +0000 |
---|---|---|
committer | Paolo Abeni | 2022-07-19 12:37:02 +0200 |
commit | e882827d5b8942a27b4d28548aa27562a3a7e94c (patch) | |
tree | 3dc73baa8209da8379066ba910f7fa03cbd7b9c1 | |
parent | 239d886601e38d948a28f3b2a1c9ce5f01bf75f2 (diff) |
amt: drop unexpected multicast data
AMT gateway interface should not receive unexpected multicast data.
Multicast data message type should be received after sending an update
message, which means all establishment between gateway and relay is
finished.
So, amt_multicast_data_handler() checks amt->status.
Fixes: cbc21dc1cfe9 ("amt: add data plane of amt interface")
Signed-off-by: Taehee Yoo <ap420073@gmail.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
-rw-r--r-- | drivers/net/amt.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/amt.c b/drivers/net/amt.c index 8dc7b8f258c8..051e92ed56c0 100644 --- a/drivers/net/amt.c +++ b/drivers/net/amt.c @@ -2282,6 +2282,9 @@ static bool amt_multicast_data_handler(struct amt_dev *amt, struct sk_buff *skb) struct ethhdr *eth; struct iphdr *iph; + if (READ_ONCE(amt->status) != AMT_STATUS_SENT_UPDATE) + return true; + hdr_size = sizeof(*amtmd) + sizeof(struct udphdr); if (!pskb_may_pull(skb, hdr_size)) return true; |