signal frame ss in a 64-bit process?

From: Andy Lutomirski
Date: Wed Jul 09 2014 - 18:14:33 EST


How is restoring ss and ds in a 64-bit process supposed to work?
There's this comment:

/* Kernel saves and restores only the CS segment register on signals,
* which is the bare minimum needed to allow mixed 32/64-bit code.
* App's signal handler can save/restore other segments if needed. */

AFAICT this is bogus: syscall (the 64-bit version) sets regs->ss to
__USER_DS. I think that the actual ss register is untouched until the
syscall returns, so in theory sigreturn could copy ss to regs, but
that seems kind of nasty.

Can we steal __pad0 and put ss in there?

--Andy

--
Andy Lutomirski
AMA Capital Management, LLC
--
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/