]> www.infradead.org Git - users/willy/pagecache.git/commit
smb311: failure to open files of length 1040 when mounting with SMB3.1.1 POSIX extensions
authorSteve French <stfrench@microsoft.com>
Mon, 17 Feb 2025 04:17:54 +0000 (22:17 -0600)
committerSteve French <stfrench@microsoft.com>
Wed, 19 Feb 2025 16:41:16 +0000 (10:41 -0600)
commit9df23801c83d3e12b4c09be39d37d2be385e52f9
treeae9a86581bbfeb1f9cc077d39a3c5d9197fe2320
parent7330195e6018ece3e886177ffbc9349a0b6585e6
smb311: failure to open files of length 1040 when mounting with SMB3.1.1 POSIX extensions

If a file size has bits 0x410 = ATTR_DIRECTORY | ATTR_REPARSE set
then during queryinfo (stat) the file is regarded as a directory
and subsequent opens can fail. A simple test example is trying
to open any file 1040 bytes long when mounting with "posix"
(SMB3.1.1 POSIX/Linux Extensions).

The cause of this bug is that Attributes field in smb2_file_all_info
struct occupies the same place that EndOfFile field in
smb311_posix_qinfo, and sometimes the latter struct is incorrectly
processed as if it was the first one.

Reported-by: Oleh Nykyforchyn <oleh.nyk@gmail.com>
Tested-by: Oleh Nykyforchyn <oleh.nyk@gmail.com>
Acked-by: Paulo Alcantara (Red Hat) <pc@manguebit.com>
Cc: stable@vger.kernel.org
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/cifsglob.h
fs/smb/client/reparse.h
fs/smb/client/smb2inode.c
fs/smb/client/smb2ops.c