diff options
author | Li Nan <linan122@huawei.com> | 2023-11-16 19:23:16 +0300 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2023-11-20 20:16:44 +0300 |
commit | c2da049f419417808466c529999170f5c3ef7d3d (patch) | |
tree | 995e8ca613b5d08357091eeb6770ed9db542a6b9 /arch | |
parent | 3123ac77923341774ca3ad1196ad20bb0732bf70 (diff) | |
download | linux-c2da049f419417808466c529999170f5c3ef7d3d.tar.xz |
nbd: fix null-ptr-dereference while accessing 'nbd->config'
Memory reordering may occur in nbd_genl_connect(), causing config_refs
to be set to 1 while nbd->config is still empty. Opening nbd at this
time will cause null-ptr-dereference.
T1 T2
nbd_open
nbd_get_config_unlocked
nbd_genl_connect
nbd_alloc_and_init_config
//memory reordered
refcount_set(&nbd->config_refs, 1) // 2
nbd->config
->null point
nbd->config = config // 1
Fix it by adding smp barrier to guarantee the execution sequence.
Signed-off-by: Li Nan <linan122@huawei.com>
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Link: https://lore.kernel.org/r/20231116162316.1740402-4-linan666@huaweicloud.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'arch')
0 files changed, 0 insertions, 0 deletions