amt: fix memory leak for advertisement message
authorTaehee Yoo <ap420073@gmail.com>
Thu, 19 May 2022 03:15:55 +0000 (03:15 +0000)
committerJakub Kicinski <kuba@kernel.org>
Sat, 21 May 2022 00:08:08 +0000 (17:08 -0700)
When a gateway receives an advertisement message, it extracts relay
information and then it should be freed.
But the advertisement handler doesn't free it.
So, memory leak would occur.

Fixes: cbc21dc1cfe9 ("amt: add data plane of amt interface")
Signed-off-by: Taehee Yoo <ap420073@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/amt.c

index 2b4ce38..de4ea51 100644 (file)
@@ -2698,9 +2698,8 @@ static int amt_rcv(struct sock *sk, struct sk_buff *skb)
                                err = true;
                                goto drop;
                        }
-                       if (amt_advertisement_handler(amt, skb))
-                               amt->dev->stats.rx_dropped++;
-                       goto out;
+                       err = amt_advertisement_handler(amt, skb);
+                       break;
                case AMT_MSG_MULTICAST_DATA:
                        if (iph->saddr != amt->remote_ip) {
                                netdev_dbg(amt->dev, "Invalid Relay IP\n");