Re: System call number masking
From: Ben Hutchings
Date: Sun Apr 17 2016 - 20:45:32 EST
On Thu, 2016-04-14 at 10:48 -0700, Andy Lutomirski wrote:
> On Thu, Apr 14, 2016 at 10:22 AM, Ben Hutchings <ben@xxxxxxxxxxxxxxx> wrote:
> > I'm updating my x32-as-boot-time-option patch for 4.6, and I noticed a
> > subtle change in system call number masking on x86_64 as a result of
> > moving the slow path into C.
> > Previously we would mask out the upper 32 bits before doing anything
> > with the system call number, both on the slow and fast paths, if and
> > only if x32 was enabled.
> I always thought that the old behavior was nonsensical.ÂÂThe behavior
> should be the same regardless of config options.
Oops, my C is failing me - ints are sign-extended, not zero-extended,
when promoted to unsigned long. ÂSo the slow path actually does test
the upper 32 bits, and the odd one out is the x32 fast path.
Always try to do things in chronological order;
it's less confusing that way.
Description: This is a digitally signed message part