Re: RELEASE BLOCKER: Linux doesn't follow x86/x86-64 ABI wrt directionflag

From: H. Peter Anvin
Date: Wed Mar 05 2008 - 20:22:39 EST


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