mirror of
https://github.com/torvalds/linux.git
synced 2026-10-05 19:34:02 +02:00
smb/server: fix invalid pointer dereference in ksmbd_stop_durable_scavenger()
See the procedure below:
ksmbd_launch_ksmbd_durable_scavenger
durable_scavenger_running = true
server_conf.dh_task = kthread_run() // fail, dh_task is an ERR_PTR()
server_ctrl_handle_reset
ksmbd_stop_durable_scavenger
kthread_stop(server_conf.dh_task) // invalid pointer
Fixes: d484d621d4 ("ksmbd: add durable scavenger timer")
Signed-off-by: ZhangGuoDong <zhangguodong@kylinos.cn>
Reviewed-by: ChenXiaoSong <chenxiaosong@kylinos.cn>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
This commit is contained in:
parent
3ce2f94919
commit
bef46b6047
|
|
@ -1618,9 +1618,12 @@ void ksmbd_launch_ksmbd_durable_scavenger(void)
|
|||
|
||||
server_conf.dh_task = kthread_run(ksmbd_durable_scavenger,
|
||||
(void *)NULL, "ksmbd-durable-scavenger");
|
||||
if (IS_ERR(server_conf.dh_task))
|
||||
if (IS_ERR(server_conf.dh_task)) {
|
||||
pr_err("cannot start conn thread, err : %ld\n",
|
||||
PTR_ERR(server_conf.dh_task));
|
||||
server_conf.dh_task = NULL;
|
||||
durable_scavenger_running = false;
|
||||
}
|
||||
mutex_unlock(&durable_scavenger_lock);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user