summaryrefslogtreecommitdiff
path: root/tools/lib/python/kdoc
diff options
context:
space:
mode:
authorZixuan Chai <petalzu987@gmail.com>2026-10-09 00:52:31 +0800
committerJakub Kicinski <kuba@kernel.org>2026-10-15 18:28:39 -0700
commit5dfa91a5ec53cfbf907a1fca095ac3ac7a4e94c9 (patch)
treebc1c136def503fa95fe4873329925cc0c8dcbe2d /tools/lib/python/kdoc
parentb2039a6dd36b5c89142bfb95bc0205be8abcc600 (diff)
ipv6: defrag: orphan skb before queuing
IPv4 and nf_conntrack fragment queues orphan skbs before returning -EINPROGRESS, but ip6_frag_queue() leaves the socket association intact. Commit 18685451fc4e ("inet: inet_defrag: prevent sk release while still in use") moved skb_orphan() into ip_frag_queue() and nf_ct_frag6_queue(), but missed ip6_frag_queue(). Without orphaning, inet_frag_reasm_finish() clears fp->sk on frag_list skbs but leaves fp->destructor set to sock_pfree. Freeing the reassembled skb then calls sock_pfree() with a NULL socket. A socket using SOCK_RCU_FREE may also be released while its fragment is queued, leaving a stale socket pointer; this is a second consequence of the same missing orphan. Orphan the skb before returning -EINPROGRESS so the queued fragment no longer retains the socket association or destructor. Fixes: cf7fbe660f2d ("bpf: Add socket assign support") Cc: stable@vger.kernel.org Reported-by: Vega <vega@nebusec.ai> Reviewed-by: Eric Dumazet <edumazet@kernel.org> Reviewed-by: Fernando Fernandez Mancera <fmancera@suse.de> Signed-off-by: Zixuan Chai <petalzu987@gmail.com> Signed-off-by: Ren Wei <weir@nebusec.ai> Link: https://patch.msgid.link/5c396b7011168cd98b9812df4d6bbd00a96048e7.1791008591.git.petalzu987@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'tools/lib/python/kdoc')
0 files changed, 0 insertions, 0 deletions