linux-stable/fs/overlayfs
Amir Goldstein e7dcf8339a ovl: fix incorrect fdput() on aio completion
commit 724768a393 upstream.

ovl_{read,write}_iter() always call fdput(real) to put one or zero
refcounts of the real file, but for aio, whether it was submitted or not,
ovl_aio_put() also calls fdput(), which is not balanced.  This is only a
problem in the less common case when FDPUT_FPUT flag is set.

To fix the problem use get_file() to take file refcount and use fput()
instead of fdput() in ovl_aio_put().

Fixes: 2406a307ac ("ovl: implement async IO routines")
Cc: <stable@vger.kernel.org> # v5.6
Reviewed-by: Miklos Szeredi <miklos@szeredi.hu>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-09-23 11:11:10 +02:00
..
copy_up.c ovl: fix failed copyup of fileattr on a symlink 2023-09-23 11:11:10 +02:00
dir.c
export.c
file.c ovl: fix incorrect fdput() on aio completion 2023-09-23 11:11:10 +02:00
inode.c ovl: fix null pointer dereference in ovl_permission() 2023-08-03 10:23:47 +02:00
Kconfig
Makefile
namei.c
overlayfs.h ovl: let helper ovl_i_path_real() return the realinode 2023-07-23 13:49:28 +02:00
ovl_entry.h ovl: check type and offset of struct vfsmount in ovl_entry 2023-07-27 08:50:32 +02:00
readdir.c
super.c ovl: Always reevaluate the file signature for IMA 2023-09-13 09:42:23 +02:00
util.c ovl: let helper ovl_i_path_real() return the realinode 2023-07-23 13:49:28 +02:00