aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuanjun Gong2023-07-17 22:49:18 +0800
committerDavid S. Miller2023-07-19 12:27:09 +0100
commitaa7cb3789b429d4fdfbe767e0e0cf8c769299d7a (patch)
treeb7148fda7aa2a88acc1b94a0f288df5648a83f5e
parent02d84f3eb53a5be982b17c88410fa6c58806356b (diff)
ipv4: ip_gre: fix return value check in erspan_xmit()
goto free_skb if an unexpected result is returned by pskb_tirm() in erspan_xmit(). Signed-off-by: Yuanjun Gong <ruc_gongyuanjun@163.com> Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/ipv4/ip_gre.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
index 914cc941af55..22a26d1d29a0 100644
--- a/net/ipv4/ip_gre.c
+++ b/net/ipv4/ip_gre.c
@@ -690,7 +690,8 @@ static netdev_tx_t erspan_xmit(struct sk_buff *skb,
goto free_skb;
if (skb->len > dev->mtu + dev->hard_header_len) {
- pskb_trim(skb, dev->mtu + dev->hard_header_len);
+ if (pskb_trim(skb, dev->mtu + dev->hard_header_len))
+ goto free_skb;
truncate = true;
}