summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorMiklos Szeredi <mszeredi@redhat.com>2018-05-31 12:26:10 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-07-03 11:21:28 +0200
commitd6f4d0cf3793cca20dc18361ec33b89de7ca16d8 (patch)
treeb47ae98f454e829ff8ea7637b30c988caaa46a14 /arch
parent8713c85a38446e8819a2cb9e8d3abcd8a5b674e6 (diff)
fuse: fix control dir setup and teardown
commit 6becdb601bae2a043d7fb9762c4d48699528ea6e upstream. syzbot is reporting NULL pointer dereference at fuse_ctl_remove_conn() [1]. Since fc->ctl_ndents is incremented by fuse_ctl_add_conn() when new_inode() failed, fuse_ctl_remove_conn() reaches an inode-less dentry and tries to clear d_inode(dentry)->i_private field. Fix by only adding the dentry to the array after being fully set up. When tearing down the control directory, do d_invalidate() on it to get rid of any mounts that might have been added. [1] https://syzkaller.appspot.com/bug?id=f396d863067238959c91c0b7cfc10b163638cac6 Reported-by: syzbot <syzbot+32c236387d66c4516827@syzkaller.appspotmail.com> Fixes: bafa96541b25 ("[PATCH] fuse: add control filesystem") Cc: <stable@vger.kernel.org> # v2.6.18 Signed-off-by: Miklos Szeredi <mszeredi@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'arch')
0 files changed, 0 insertions, 0 deletions