From: Sven Eckelmann Date: Fri, 3 Jul 2026 19:04:03 +0000 (+0200) Subject: batman-adv: frag: fix primary_if leak on failed linearization X-Git-Tag: v7.2-rc3~29^2~6^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=353d2c1d5492e53ae34f490a84494124dc3d3531;p=thirdparty%2Fkernel%2Flinux.git batman-adv: frag: fix primary_if leak on failed linearization If the skb has a frag_list, it must be linearized before it can be split using skb_split(). But when this step failed, it must not only free the skb but also take care of the reference to the already found primary_if. Cc: stable@vger.kernel.org Reported-by: Sashiko Fixes: a063f2fba3fa ("batman-adv: Don't skb_split skbuffs with frag_list") Signed-off-by: Sven Eckelmann --- diff --git a/net/batman-adv/fragmentation.c b/net/batman-adv/fragmentation.c index 13d4689d332d..2e20a2cb64cb 100644 --- a/net/batman-adv/fragmentation.c +++ b/net/batman-adv/fragmentation.c @@ -547,7 +547,7 @@ int batadv_frag_send_packet(struct sk_buff *skb, */ if (skb_has_frag_list(skb) && __skb_linearize(skb)) { ret = -ENOMEM; - goto free_skb; + goto put_primary_if; } /* Create one header to be copied to all fragments */