Re: [PATCH v2 net 3/3] net: rose: include node references in rose_neigh refcount
From: Kuniyuki Iwashima <kuniyu@google.com>
Date: 2025-08-27 06:48:30
Also in:
linux-hams
From: Kuniyuki Iwashima <kuniyu@google.com>
Date: 2025-08-27 06:48:30
Also in:
linux-hams
On Sat, Aug 23, 2025 at 2:01 AM Takamitsu Iwai [off-list ref] wrote:
Current implementation maintains two separate reference counting
mechanisms: the 'count' field in struct rose_neigh tracks references from
rose_node structures, while the 'use' field (now refcount_t) tracks
references from rose_sock.
This patch merges these two reference counting systems using 'use' field
for proper reference management. Specifically, this patch adds incrementing
and decrementing of rose_neigh->use when rose_neigh->count is incremented
or decremented.
This patch also modifies rose_rt_free(), rose_rt_device_down() and
rose_clear_route() to properly release references to rose_neigh objects
before freeing a rose_node through rose_remove_node().
These changes ensure rose_neigh structures are properly freed only when
all references, including those from rose_node structures, are released.
As a result, this resolves a slab-use-after-free issue reported by Syzbot.
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Reported-by: syzbot+942297eecf7d2d61d1f1@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=942297eecf7d2d61d1f1
Signed-off-by: Takamitsu Iwai <redacted>Reviewed-by: Kuniyuki Iwashima <kuniyu@google.com>