coda: fix 'kernel memory exposure attempt' in fsync
authorJan Harkes <jaharkes@cs.cmu.edu>
Wed, 27 Sep 2017 19:52:12 +0000 (15:52 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 24 Nov 2017 07:33:42 +0000 (08:33 +0100)
commitfae5947129eb9f3cf0bc05bb4c770e5c2b2c8dd6
tree96f0f4ffbacdf68d789de44111b90444569a5d1f
parent9980b8278338d4ba2064c32baa5db30f15a3ff96
coda: fix 'kernel memory exposure attempt' in fsync

commit d337b66a4c52c7b04eec661d86c2ef6e168965a2 upstream.

When an application called fsync on a file in Coda a small request with
just the file identifier was allocated, but the declared length was set
to the size of union of all possible upcall requests.

This bug has been around for a very long time and is now caught by the
extra checking in usercopy that was introduced in Linux-4.8.

The exposure happens when the Coda cache manager process reads the fsync
upcall request at which point it is killed. As a result there is nobody
servicing any further upcalls, trapping any processes that try to access
the mounted Coda filesystem.

Signed-off-by: Jan Harkes <jaharkes@cs.cmu.edu>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/coda/upcall.c