diff options
author | Namjae Jeon <linkinjeon@kernel.org> | 2023-07-17 08:37:40 +0900 |
---|---|---|
committer | Steve French <stfrench@microsoft.com> | 2023-07-23 10:25:11 -0500 |
commit | 2b57a4322b1b14348940744fdc02f9a86cbbdbeb (patch) | |
tree | 4a2e6816c749b031393636fe31091f4c17c76173 /fs/smb/server/vfs.h | |
parent | 0266a2f791294e0b4ba36f4a1d89b8615ea3cac0 (diff) |
ksmbd: check if a mount point is crossed during path lookup
Since commit 74d7970febf7 ("ksmbd: fix racy issue from using ->d_parent and
->d_name"), ksmbd can not lookup cross mount points. If last component is
a cross mount point during path lookup, check if it is crossed to follow it
down. And allow path lookup to cross a mount point when a crossmnt
parameter is set to 'yes' in smb.conf.
Cc: stable@vger.kernel.org
Fixes: 74d7970febf7 ("ksmbd: fix racy issue from using ->d_parent and ->d_name")
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/smb/server/vfs.h')
-rw-r--r-- | fs/smb/server/vfs.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/smb/server/vfs.h b/fs/smb/server/vfs.h index 80039312c255..72f9fb4b48d1 100644 --- a/fs/smb/server/vfs.h +++ b/fs/smb/server/vfs.h @@ -115,8 +115,8 @@ int ksmbd_vfs_xattr_stream_name(char *stream_name, char **xattr_stream_name, int ksmbd_vfs_remove_xattr(struct mnt_idmap *idmap, const struct path *path, char *attr_name); int ksmbd_vfs_kern_path_locked(struct ksmbd_work *work, char *name, - unsigned int flags, struct path *path, - bool caseless); + unsigned int flags, struct path *parent_path, + struct path *path, bool caseless); struct dentry *ksmbd_vfs_kern_path_create(struct ksmbd_work *work, const char *name, unsigned int flags, |