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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 22 Feb 2018 14:42:17 +0000 (15:42 +0100)
commit27f97375fcb86750cdf82a65dab8174bb991c238
treedccb929cc508240fe88d1b0ed9014ad47c1a5a4e
parentf25dfc9359cc5e173a5b94e407c6417f5889c9c6
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.

Cc: stable@vger.kernel.org
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/s390/kernel/compat_linux.c