• Arnd Bergmann's avatar
    sparc32: fix struct ipc64_perm type definition · 9e154752
    Arnd Bergmann authored
    [ Upstream commit 34ca70ef ]
    
    As discussed in the strace issue tracker, it appears that the sparc32
    sysvipc support has been broken for the past 11 years. It was however
    working in compat mode, which is how it must have escaped most of the
    regular testing.
    
    The problem is that a cleanup patch inadvertently changed the uid/gid
    fields in struct ipc64_perm from 32-bit types to 16-bit types in uapi
    headers.
    
    Both glibc and uclibc-ng still use the original types, so they should
    work fine with compat mode, but not natively.  Change the definitions
    to use __kernel_uid32_t and __kernel_gid32_t again.
    
    Fixes: 83c86984 ("sparc: unify ipcbuf.h")
    Link: https://github.com/strace/strace/issues/116
    Cc: <stable@vger.kernel.org> # v2.6.29
    Cc: Sam Ravnborg <sam@ravnborg.org>
    Cc: "Dmitry V . Levin" <ldv@altlinux.org>
    Cc: Rich Felker <dalias@libc.org>
    Cc: libc-alpha@sourceware.org
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
    9e154752
ipcbuf.h 776 Bytes