nbd: fix null-ptr-dereference while accessing 'nbd->config'
Offering: HULK hulk inclusion category: bugfix bugzilla: 188902, https://gitee.com/openeuler/kernel/issues/I7EENU ---------------------------------------- nbd->config = config and refcount_set(&nbd->config_refs, 1) in nbd_genl_connect may be out of order, causing config_refs to be set to 1 first, and then nbd_open accessing nbd->config reports a null pointer reference. T1 T2 vfs_open do_dentry_open blkdev_open blkdev_get __blkdev_get nbd_open nbd_get_config_unlocked genl_rcv_msg genl_family_rcv_msg genl_family_rcv_msg_doit nbd_genl_connect nbd_alloc_and_init_config // out of order execution refcount_set(&nbd->config_refs, 1); // 2 nbd->config // null point nbd->config = config; // 1 Fix it by adding a cpu memory barrier to guarantee sequential execution. Signed-off-by: NYu Kuai <yukuai3@huawei.com> Signed-off-by: NZhong Jinghua <zhongjinghua@huawei.com>
Showing
想要评论请 注册 或 登录