Messages in this thread | | | From | Andy Lutomirski <> | Date | Wed, 9 Jul 2014 15:14:07 -0700 | Subject | signal frame ss in a 64-bit process? |
| |
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
| |