Messages in this thread | | | Date | Mon, 26 Oct 2015 17:26:42 -0700 | From | Christoph Hellwig <> | Subject | Re: [PATCH 1/1] kthread: introduce kthread_get_run() to fix __nbd_ioctl() |
| |
On Sun, Oct 25, 2015 at 03:27:13PM +0100, Oleg Nesterov wrote: > It is not safe to use the task_struct returned by kthread_run(threadfn) > if threadfn() can exit before the "owner" does kthread_stop(), nothing > protects this task_struct. > > So __nbd_ioctl() looks buggy; a killed nbd_thread_send() can exit, free > its task_struct, and then kthread_stop() can use the freed/reused memory. > > Add the new trivial helper, kthread_get_run(). Hopefully it will have more > users, this patch changes __nbd_ioctl() as an example.
This looks horrible. I think the real problem is that nbd is totally abusing signals for kthreads and that needs to go away.
| |