net: esp: cleanup esp_output_tail_tcp() in case of unsupported ESPINTCP

[ Upstream commit 96f887a612e4cda89efc3f54bc10c1997e3ab0e9 ]

xmit() functions should consume skb or return error codes in error
paths.
When the configuration "CONFIG_INET_ESPINTCP" is not set, the
implementation of the function "esp_output_tail_tcp" violates this rule.
The function frees the skb and returns the error code.
This change removes the kfree_skb from both functions, for both
esp4 and esp6.
WARN_ON is added because esp_output_tail_tcp() should never be called if
CONFIG_INET_ESPINTCP is not set.

This bug was discovered and resolved using Coverity Static Analysis
Security Testing (SAST) by Synopsys, Inc.

Fixes: e27cca96cd ("xfrm: add espintcp (RFC 8229)")
Signed-off-by: Hagar Hemdan <hagarhem@amazon.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Hagar Hemdan 2024-05-18 13:04:39 +00:00 committed by Greg Kroah-Hartman
parent d8ffeb5bd5
commit 7797efc98e
2 changed files with 2 additions and 4 deletions

View File

@ -238,8 +238,7 @@ static int esp_output_tail_tcp(struct xfrm_state *x, struct sk_buff *skb)
#else #else
static int esp_output_tail_tcp(struct xfrm_state *x, struct sk_buff *skb) static int esp_output_tail_tcp(struct xfrm_state *x, struct sk_buff *skb)
{ {
kfree_skb(skb); WARN_ON(1);
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
#endif #endif

View File

@ -255,8 +255,7 @@ static int esp_output_tail_tcp(struct xfrm_state *x, struct sk_buff *skb)
#else #else
static int esp_output_tail_tcp(struct xfrm_state *x, struct sk_buff *skb) static int esp_output_tail_tcp(struct xfrm_state *x, struct sk_buff *skb)
{ {
kfree_skb(skb); WARN_ON(1);
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
#endif #endif