]> git.baikalelectronics.ru Git - kernel.git/commit
net/smc: Fix slab-out-of-bounds issue in fallback
authorWen Gu <guwen@linux.alibaba.com>
Fri, 22 Apr 2022 07:56:19 +0000 (15:56 +0800)
committerJakub Kicinski <kuba@kernel.org>
Mon, 25 Apr 2022 18:03:48 +0000 (11:03 -0700)
commit86de3ef8ef7df95a98058194a32b434b1311d341
treee30751d6e6b40913f4033d436e606fb2888a2bbe
parentf2c1d8e3706b6c20fefda298d05e4a5c93fcece1
net/smc: Fix slab-out-of-bounds issue in fallback

syzbot reported a slab-out-of-bounds/use-after-free issue,
which was caused by accessing an already freed smc sock in
fallback-specific callback functions of clcsock.

This patch fixes the issue by restoring fallback-specific
callback functions to original ones and resetting clcsock
sk_user_data to NULL before freeing smc sock.

Meanwhile, this patch introduces sk_callback_lock to make
the access and assignment to sk_user_data mutually exclusive.

Reported-by: syzbot+b425899ed22c6943e00b@syzkaller.appspotmail.com
Fixes: f3f628cf8745 ("net/smc: Forward wakeup to smc socket waitqueue after fallback")
Link: https://lore.kernel.org/r/00000000000013ca8105d7ae3ada@google.com/
Signed-off-by: Wen Gu <guwen@linux.alibaba.com>
Acked-by: Karsten Graul <kgraul@linux.ibm.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/smc/af_smc.c
net/smc/smc_close.c