Files
linux/fs
Miklos Szeredi dcc2f0e875 fuse: fix control dir setup and teardown
commit 6becdb601b 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: bafa96541b ("[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>
2018-07-03 11:26:50 +02:00
..
2018-05-16 21:35:23 +01:00
2018-05-21 14:30:07 -04:00
2018-05-21 14:30:08 -04:00
2018-03-14 13:31:23 +01:00
2018-03-27 13:18:09 -04:00
2018-05-21 14:30:09 -04:00
2018-05-23 22:53:22 -04:00
2018-04-11 10:28:39 -07:00
2018-04-11 10:28:37 -07:00
2017-12-07 14:23:30 -05:00
2018-05-03 16:11:37 -06:00
2018-01-29 07:27:24 -08:00
2018-02-15 15:34:42 -05:00