aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWei Yongjun2022-11-14 11:05:19 +0000
committerJakub Kicinski2022-11-15 20:22:19 -0800
commit2929cceb2fcf0ded7182562e4888afafece82cce (patch)
treef9bacf2fc24e734004408b7450a82eb7fdc600a7
parentc9b895c6878bdb6789dc1d7af60fd10f4a9f1937 (diff)
net/x25: Fix skb leak in x25_lapb_receive_frame()
x25_lapb_receive_frame() using skb_copy() to get a private copy of skb, the new skb should be freed in the undersized/fragmented skb error handling path. Otherwise there is a memory leak. Fixes: cb101ed2c3c7 ("x25: Handle undersized/fragmented skbs") Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com> Acked-by: Martin Schiller <ms@dev.tdt.de> Link: https://lore.kernel.org/r/20221114110519.514538-1-weiyongjun@huaweicloud.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--net/x25/x25_dev.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/x25/x25_dev.c b/net/x25/x25_dev.c
index 5259ef8f5242..748d8630ab58 100644
--- a/net/x25/x25_dev.c
+++ b/net/x25/x25_dev.c
@@ -117,7 +117,7 @@ int x25_lapb_receive_frame(struct sk_buff *skb, struct net_device *dev,
if (!pskb_may_pull(skb, 1)) {
x25_neigh_put(nb);
- return 0;
+ goto drop;
}
switch (skb->data[0]) {