vfs: read file_handle only once in handle_to_path
authorSasha Levin <sasha.levin@oracle.com>
Wed, 28 Jan 2015 20:30:43 +0000 (15:30 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 6 Jun 2015 06:20:00 +0000 (23:20 -0700)
commitfe023f735b36f809b4d740e86f15658a2852fc09
tree19b8f378a13501e31132c9b1c1ebcbb2d6d304c5
parent92c934b10ec3ed9db375161829d715892c9f4f99
vfs: read file_handle only once in handle_to_path

commit 161f873b89136eb1e69477c847d5a5033239d9ba upstream.

We used to read file_handle twice.  Once to get the amount of extra
bytes, and once to fetch the entire structure.

This may be problematic since we do size verifications only after the
first read, so if the number of extra bytes changes in userspace between
the first and second calls, we'll have an incoherent view of
file_handle.

Instead, read the constant size once, and copy that over to the final
structure without having to re-read it again.

Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/fhandle.c