fuse: fix page dereference after free
authorMiklos Szeredi <mszeredi@redhat.com>
Fri, 18 Sep 2020 08:36:50 +0000 (10:36 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 1 Nov 2020 11:45:41 +0000 (12:45 +0100)
commit07d54b8dc56e513fc1175b4e6882cebfffba8ee5
tree2c12fe4bbc1de02ee54a7605943c9576115c6af8
parent78453a7dbb1a431ff96afb41a23c4439215d1c3f
fuse: fix page dereference after free

commit d78092e4937de9ce55edcb4ee4c5e3c707be0190 upstream.

After unlock_request() pages from the ap->pages[] array may be put (e.g. by
aborting the connection) and the pages can be freed.

Prevent use after free by grabbing a reference to the page before calling
unlock_request().

The original patch was created by Pradeep P V K.

Reported-by: Pradeep P V K <ppvk@codeaurora.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/fuse/dev.c