Commit 6ae1756f authored by James Hogan's avatar James Hogan

MIPS: Drop spurious __unused in struct compat_flock

MIPS' struct compat_flock doesn't match the 32-bit struct flock, as it
has an extra short __unused before pad[4], which combined with alignment
increases the size to 40 bytes compared with struct flock's 36 bytes.

Since commit 8c6657cb ("Switch flock copyin/copyout primitives to
copy_{from,to}_user()"), put_compat_flock() writes the full compat_flock
struct to userland, which results in corruption of the userland word
after the struct flock when running 32-bit userlands on 64-bit kernels.

This was observed to cause a bus error exception when starting Firefox
on Debian 8 (Jessie).
Reported-by: default avatarPeter Mamonov <pmamonov@gmail.com>
Signed-off-by: default avatarJames Hogan <jhogan@kernel.org>
Tested-by: default avatarPeter Mamonov <pmamonov@gmail.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: linux-mips@linux-mips.org
Cc: <stable@vger.kernel.org> # 4.13+
Patchwork: https://patchwork.linux-mips.org/patch/18646/
parent 91ab883e
...@@ -86,7 +86,6 @@ struct compat_flock { ...@@ -86,7 +86,6 @@ struct compat_flock {
compat_off_t l_len; compat_off_t l_len;
s32 l_sysid; s32 l_sysid;
compat_pid_t l_pid; compat_pid_t l_pid;
short __unused;
s32 pad[4]; s32 pad[4];
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment