Re: PATCH? process_32.c:__switch_to() calls __math_state_restore()before updating current_task

From: Oleg Nesterov
Date: Sat Feb 06 2010 - 07:09:20 EST


On 02/06, Oleg Nesterov wrote:
>
> On 02/05, Oleg Nesterov wrote:
> >
> > In short: why restore_i387_xstate() does init_fpu() when !used_math(),
> > can't (or shouldn't) it merely do set_used_math() ?
> >
> > restore_i387_xstate:
> >
> > if (!used_math()) {
> > err = init_fpu(tsk);
> > if (err)
> > return err;
> > }
> >
> > note that buf != NULL. This means that used_math() was true when
> > get_sigframe() was called, otherwise buf == sigcontext->fpstate
> > would be NULL, right?
> >
> > So, the task must have the valid ->thread.xstate,
>
> This is probably correct. But a malicious user can set sc->fpsate
> and fool the kernel, so we must assume buf != NULL implies the
^^^^
can't
> valid ->xstate.

Oleg.

--
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/