Message ID | 20221020132049.3947415-1-yukuai3@huawei.com (mailing list archive) |
---|---|
Headers | show |
Series | block: fix uaf in bd_link_disk_holder() | expand |
As mentioned before I don't think we should make this even more crufty in the block layer. See the series I just sent to move it int dm.
Hi, 在 2022/10/21 0:47, Christoph Hellwig 写道: > As mentioned before I don't think we should make this even more > crufty in the block layer. See the series I just sent to move it int > dm. It seems we had some misunderstanding, the problem I tried to fix here should not just related to dm, but all the caller of bd_link_disk_holder(). Thanks, Kuai > > . >
Hi, Christoph 在 2022/10/21 11:15, Yu Kuai 写道: > Hi, > > 在 2022/10/21 0:47, Christoph Hellwig 写道: >> As mentioned before I don't think we should make this even more >> crufty in the block layer. See the series I just sent to move it int >> dm. > > It seems we had some misunderstanding, the problem I tried to fix here > should not just related to dm, but all the caller of > bd_link_disk_holder(). Any suggestions about how to fix this problem? Thanks, Kuai > > Thanks, > Kuai >> >> . >> > > . >
On Fri, Oct 21, 2022 at 11:15:34AM +0800, Yu Kuai wrote: > Hi, > > 在 2022/10/21 0:47, Christoph Hellwig 写道: >> As mentioned before I don't think we should make this even more >> crufty in the block layer. See the series I just sent to move it int >> dm. > > It seems we had some misunderstanding, the problem I tried to fix here > should not just related to dm, but all the caller of > bd_link_disk_holder(). As far as I can tell the problem was just that patch 1 in my series blows away the bd_holder_dir pointer in part0 on del_gendisk. Each holder actually holds a reference to the kobject, so the memory for it is still valid, it's just that the pointer got cleared. I'll send a v2 in a bit.
Hi, Christoph 在 2022/10/30 23:30, Christoph Hellwig 写道: > On Fri, Oct 21, 2022 at 11:15:34AM +0800, Yu Kuai wrote: >> Hi, >> >> 在 2022/10/21 0:47, Christoph Hellwig 写道: >>> As mentioned before I don't think we should make this even more >>> crufty in the block layer. See the series I just sent to move it int >>> dm. >> >> It seems we had some misunderstanding, the problem I tried to fix here >> should not just related to dm, but all the caller of >> bd_link_disk_holder(). > > As far as I can tell the problem was just that patch 1 in my series blows > away the bd_holder_dir pointer in part0 on del_gendisk. Each holder > actually holds a reference to the kobject, so the memory for it is > still valid, it's just that the pointer got cleared. I'll send a v2 > in a bit. This is not the real case. In bd_link_disk_hoder(), bd_hodler_dir is accessed first by add_symlink(), and then reference is grabed later. The reference should be grabed before bd_holder_dir is accessed, like what I try to do in patch 2. Thanks, Kuai > > . >