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