Re: [PATCH] kmod: Fix race in usermodehelper code

From: Andrew Morton
Date: Wed Jul 01 2009 - 16:57:00 EST


On Tue, 30 Jun 2009 22:48:03 -0400
Neil Horman <nhorman@xxxxxxxxxxxxx> 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)


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/