On Tue, 2020-04-07 at 14:40 +0200, Thorsten Glaser wrote:
> Dear kernel team,
> 
> libseccomp uses the __NR_* constants from <asm/unistd.h> in its
> macro SCMP_SYS() which is designed to return int.
> 
> However, on x32 some codes return unsigned long instead, breaking this.
> The cause is that this…
> 
> > /usr/include/x86_64-linux-gnux32/asm/unistd.h:#define __X32_SYSCALL_BIT 
> > 0x40000000UL
> 
> … is OR’d into the numbers.
> 
> I’d like to propose the change…
> -#define __X32_SYSCALL_BIT 0x40000000UL
> +#define __X32_SYSCALL_BIT 0x40000000
> … which should be safe to do as the number fits into signed int,
> but must be checked against other users (especially in the kernel
> itself I’d guess).
> 
> This should also technically be correct, since on all(?) other
> architectures syscall numbers are int constants.
> 
> Please forward this to upstream.

You should not expect me to spend time talking to upstream about non-
release architectures.  That is way down the priority list.

Ben.

-- 
Ben Hutchings
It's easier to fight for one's principles than to live up to them.


Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to