summaryrefslogtreecommitdiffstats
path: root/fs/smb
diff options
context:
space:
mode:
authorPali Rohár <pali@kernel.org>2024-09-28 23:59:46 +0200
committerSteve French <stfrench@microsoft.com>2024-10-03 19:06:36 +0200
commitd3a49f60917323228f8fdeee313260ef14f94df7 (patch)
treeea82fc5edb6230653502c4cf0245286df0d859ca /fs/smb
parentcifs: Validate content of NFS reparse point buffer (diff)
downloadlinux-d3a49f60917323228f8fdeee313260ef14f94df7.tar.xz
linux-d3a49f60917323228f8fdeee313260ef14f94df7.zip
cifs: Do not convert delimiter when parsing NFS-style symlinks
NFS-style symlinks have target location always stored in NFS/UNIX form where backslash means the real UNIX backslash and not the SMB path separator. So do not mangle slash and backslash content of NFS-style symlink during readlink() syscall as it is already in the correct Linux form. This fixes interoperability of NFS-style symlinks with backslashes created by Linux NFS3 client throw Windows NFS server and retrieved by Linux SMB client throw Windows SMB server, where both Windows servers exports the same directory. Fixes: d5ecebc4900d ("smb3: Allow query of symlinks stored as reparse points") Acked-by: Paulo Alcantara (Red Hat) <pc@manguebit.com> Signed-off-by: Pali Rohár <pali@kernel.org> Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/smb')
-rw-r--r--fs/smb/client/reparse.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/fs/smb/client/reparse.c b/fs/smb/client/reparse.c
index f0cfcf32de19..c848b5e88d32 100644
--- a/fs/smb/client/reparse.c
+++ b/fs/smb/client/reparse.c
@@ -347,7 +347,6 @@ static int parse_reparse_posix(struct reparse_posix_data *buf,
cifs_sb->local_nls);
if (!data->symlink_target)
return -ENOMEM;
- convert_delimiter(data->symlink_target, '/');
cifs_dbg(FYI, "%s: target path: %s\n",
__func__, data->symlink_target);
break;