]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
fixes for 5.4
authorSasha Levin <sashal@kernel.org>
Thu, 6 Feb 2020 04:53:39 +0000 (23:53 -0500)
committerSasha Levin <sashal@kernel.org>
Thu, 6 Feb 2020 04:53:39 +0000 (23:53 -0500)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-5.4/series [new file with mode: 0644]
queue-5.4/sparc32-fix-struct-ipc64_perm-type-definition.patch [new file with mode: 0644]

diff --git a/queue-5.4/series b/queue-5.4/series
new file mode 100644 (file)
index 0000000..eaceec7
--- /dev/null
@@ -0,0 +1 @@
+sparc32-fix-struct-ipc64_perm-type-definition.patch
diff --git a/queue-5.4/sparc32-fix-struct-ipc64_perm-type-definition.patch b/queue-5.4/sparc32-fix-struct-ipc64_perm-type-definition.patch
new file mode 100644 (file)
index 0000000..73e9110
--- /dev/null
@@ -0,0 +1,74 @@
+From 62882acabeec5deca854652f9baee8916143cbe8 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 14 Jan 2020 14:26:14 +0100
+Subject: sparc32: fix struct ipc64_perm type definition
+
+From: Arnd Bergmann <arnd@arndb.de>
+
+[ Upstream commit 34ca70ef7d3a9fa7e89151597db5e37ae1d429b4 ]
+
+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: 83c86984bff2 ("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: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/sparc/include/uapi/asm/ipcbuf.h | 22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/arch/sparc/include/uapi/asm/ipcbuf.h b/arch/sparc/include/uapi/asm/ipcbuf.h
+index 9d0d125500e24..084b8949ddff6 100644
+--- a/arch/sparc/include/uapi/asm/ipcbuf.h
++++ b/arch/sparc/include/uapi/asm/ipcbuf.h
+@@ -15,19 +15,19 @@
+ struct ipc64_perm
+ {
+-      __kernel_key_t  key;
+-      __kernel_uid_t  uid;
+-      __kernel_gid_t  gid;
+-      __kernel_uid_t  cuid;
+-      __kernel_gid_t  cgid;
++      __kernel_key_t          key;
++      __kernel_uid32_t        uid;
++      __kernel_gid32_t        gid;
++      __kernel_uid32_t        cuid;
++      __kernel_gid32_t        cgid;
+ #ifndef __arch64__
+-      unsigned short  __pad0;
++      unsigned short          __pad0;
+ #endif
+-      __kernel_mode_t mode;
+-      unsigned short  __pad1;
+-      unsigned short  seq;
+-      unsigned long long __unused1;
+-      unsigned long long __unused2;
++      __kernel_mode_t         mode;
++      unsigned short          __pad1;
++      unsigned short          seq;
++      unsigned long long      __unused1;
++      unsigned long long      __unused2;
+ };
+ #endif /* __SPARC_IPCBUF_H */
+-- 
+2.20.1
+