]> git.baikalelectronics.ru Git - kernel.git/commit
block, bfq: fix uaf for bfqq in bic_set_bfqq()
authorYu Kuai <yukuai3@huawei.com>
Mon, 30 Jan 2023 01:41:36 +0000 (09:41 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Feb 2023 10:28:06 +0000 (11:28 +0100)
commit6c45cedf85ffb1e1fe4eb40de7611aaa7cfcdd7f
tree45f18dbafbaef815cc3408198372c2e8b68e811a
parentc2983fc779daa6b7665441fccbc3a52765f4d671
block, bfq: fix uaf for bfqq in bic_set_bfqq()

[ Upstream commit 0f9a66bf942777d34ac11211ad5062198a6cce31 ]

After commit 4f2a4111753a ("block, bfq: fix possible uaf for 'bfqq->bic'"),
bic->bfqq will be accessed in bic_set_bfqq(), however, in some context
bic->bfqq will be freed, and bic_set_bfqq() is called with the freed
bic->bfqq.

Fix the problem by always freeing bfqq after bic_set_bfqq().

Fixes: 4f2a4111753a ("block, bfq: fix possible uaf for 'bfqq->bic'")
Reported-and-tested-by: Shinichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20230130014136.591038-1-yukuai1@huaweicloud.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
block/bfq-cgroup.c
block/bfq-iosched.c