RELEASE BLOCKER: Linux doesn't follow x86/x86-64 ABI wrt direction flag
H. Peter Anvin
hpa@zytor.com
Thu Mar 6 01:15:00 GMT 2008
Chris Lattner wrote:
>>
>> Upon return to userspace, the modified state kicks in. Thus the
>> signal handler is entered with DF from userspace at trap time, not DF=0.
>>
>> So it's an asynchronous state leak from one piece of userspace to
>> another.
>
> Fine, it can happen either way. In either case, the distro vendor
> should fix the the signal handler in the kernels they distribute. If
> you don't do that, you are still leaking information from one piece of
> user space code to another, you're just papering over it in a horrible
> way :)
>
> GCC defines the direction flag to be clear before inline asm. Enforcing
> the semantics you propose would require issuing a cld before every
> inline asm, not just before every string operation.
>
It's a kernel bug, and it needs to be fixed. The discussion is about
what to do in the meantime.
(And yes, you're absolutely right: between global subroutine entry and
the first asm or string operation, you'd have to emit cld.)
-hpa
More information about the Gcc
mailing list