Messages in this thread | | | Date | Wed, 1 Jul 2009 13:56:31 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH] kmod: Fix race in usermodehelper code |
| |
On Tue, 30 Jun 2009 22:48:03 -0400 Neil Horman <nhorman@tuxdriver.com> wrote:
> User Mode Helper: Fix race in UMH_WAIT_EXEC case > > The user mode helper code has a race in it. call_usermodehelper_exec takes an > allocated subprocess_info structure, which it passes to a workqueue, and then > passes it to a kernel thread which it creates, after which it calls complete to > signal to the caller of call_usremodehelper_exec that it can free the > subprocess_info struct. But since we use that structure in the created thread, > we can't call complete from __call_usermodehelper, which is where we create the > kernel_thread. We need to call complete from within the kernel thread and then > not use subprocess_info afterward in the case of UMH_WAIT_EXEC. Tested > successfully by me. >
<stares at the code for ten minutes>
Geeze that's getting complex, isn't it? The patch looks OK. I think.
I wonder why people aren't reporting this. Perhaps CLONE_VFORK plus child-runs-first? (_does_ the chld run first? We seem to have changed it a couple of times)
| |