s390: fix handling of -1 in set{,fs}[gu]id16 syscalls
authorEugene Syromiatnikov <esyr@redhat.com>
Mon, 15 Jan 2018 19:38:17 +0000 (20:38 +0100)
committerBen Hutchings <ben@decadent.org.uk>
Thu, 31 May 2018 23:30:10 +0000 (00:30 +0100)
commitf064e3c7e09390ea48a5fbda0528e145fba432b5
tree08fde0aaae0d88afe6454eede2c4707ca5507952
parent2957236b68e747eff5ab9176448b906042af9ff7
s390: fix handling of -1 in set{,fs}[gu]id16 syscalls

commit 6dd0d2d22aa363fec075cb2577ba273ac8462e94 upstream.

For some reason, the implementation of some 16-bit ID system calls
(namely, setuid16/setgid16 and setfsuid16/setfsgid16) used type cast
instead of low2highgid/low2highuid macros for converting [GU]IDs, which
led to incorrect handling of value of -1 (which ought to be considered
invalid).

Discovered by strace test suite.

Signed-off-by: Eugene Syromiatnikov <esyr@redhat.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
arch/s390/kernel/compat_linux.c