]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
neigh: let neigh_xmit take skb ownership
authorFlorian Westphal <fw@strlen.de>
Fri, 24 Apr 2026 14:58:38 +0000 (16:58 +0200)
committerJakub Kicinski <kuba@kernel.org>
Tue, 28 Apr 2026 02:02:11 +0000 (19:02 -0700)
commit4438113be604ee67a7bf4f81da6e1cca41332ce4
tree4591f0f7f2f0fa34629a0a1731d5fe5493945e41
parentb3b6babf47517fde6b6de2493dea28e8831b9347
neigh: let neigh_xmit take skb ownership

neigh_xmit always releases the skb, except when no neighbour table is
found. But even the first added user of neigh_xmit (mpls) relied on
neigh_xmit to release the skb (or queue it for tx).

sashiko reported:
 If neigh_xmit() is called with an uninitialized neighbor table (for
 example, NEIGH_ND_TABLE when IPv6 is disabled), it returns -EAFNOSUPPORT
 and bypasses its internal out_kfree_skb error path.  Because the return
 value of neigh_xmit() is ignored here, does this leak the SKB?

Assume full ownership and remove the last code path that doesn't
xmit or free skb.

Fixes: 4fd3d7d9e868 ("neigh: Add helper function neigh_xmit")
Signed-off-by: Florian Westphal <fw@strlen.de>
Reviewed-by: Kuniyuki Iwashima <kuniyu@google.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/20260424145843.74055-1-fw@strlen.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/core/neighbour.c