summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTao Liu <taoliu828@163.com>2023-03-14 15:10:17 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-03-17 10:45:15 +0300
commitc53d50d8081a49ba21f866a51277a012b9efad8e (patch)
tree34d00f17f6fb6354887a1a3b5c2cb6747f60336e
parenta4932a2c544607640ddab7f3275726e364a897bf (diff)
downloadlinux-c53d50d8081a49ba21f866a51277a012b9efad8e.tar.xz
skbuff: Fix nfct leak on napi stolen
Upstream commit [0] had fixed this issue, and backported to kernel 5.10.54. However, nf_reset_ct() added in skb_release_head_state() instead of napi_skb_free_stolen_head(), which lead to leakage still exist in 5.10. [0] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8550ff8d8c75416e984d9c4b082845e57e560984 Fixes: 570341f10ecc ("skbuff: Release nfct refcount on napi stolen or re-used skbs")) Signed-off-by: Tao Liu <taoliu828@163.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--net/core/dev.c1
-rw-r--r--net/core/skbuff.c1
2 files changed, 1 insertions, 1 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index 8cbcb6a104f2..413c2a08d79d 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -6111,6 +6111,7 @@ EXPORT_SYMBOL(gro_find_complete_by_type);
static void napi_skb_free_stolen_head(struct sk_buff *skb)
{
+ nf_reset_ct(skb);
skb_dst_drop(skb);
skb_ext_put(skb);
kmem_cache_free(skbuff_head_cache, skb);
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index 668a9d0fbbc6..09cdefe5e1c8 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -659,7 +659,6 @@ fastpath:
void skb_release_head_state(struct sk_buff *skb)
{
- nf_reset_ct(skb);
skb_dst_drop(skb);
if (skb->destructor) {
WARN_ON(in_irq());