RE: FW: i386 Linux kernel DoS (clarification)

Petr Vandrovec (VANDROVE@vc.cvut.cz)
Wed, 13 Nov 2002 22:18:32 +0100


On 13 Nov 02 at 21:36, Alan Cox wrote:

> Try this
>
> (In the Linus Torvalds tradition its not tested)

I'll test it, but before kernel compiles...

> --- arch/i386/kernel/entry.S~ 2002-11-13 21:30:37.000000000 +0000
> +++ arch/i386/kernel/entry.S 2002-11-13 21:29:47.000000000 +0000
> @@ -126,6 +126,7 @@
> ENTRY(lcall7)
> pushfl # We get a different stack layout with call
> # gates, which has to be cleaned up later..
> + andl $~0x4500, (%esp) # Clear NT since we are doing an iret

this will clear 'D' and 'T' in caller after we do
iret (if lcall7 returns, of course). I'm not sure that callers
expect that.

> @@ -390,6 +392,9 @@
> pushl $do_divide_error
> ALIGN
> error_code:
> + pushfl
> + andl $~0x4500, (%esp) # NT must be clear, do a cld for free
> + popfl

I believe that NT should be automagically cleared by int.
Best regards,
Petr Vandrovec
vandrove@vc.cvut.cz

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