Bug in getting file attributes with SMB3.1.1 and posix

Steve French smfrench at gmail.com
Mon Feb 17 04:26:36 UTC 2025


Oleh,
Good catch, and sorry about the delay (email had gotten missed).

Here is a fix (see attached) for the problem you reported.  Let me
know if it also works for you or if you see any problems with it.

This is important fix for SMB3.1.1 POSIX Extensions client implementation.


On Wed, Jan 1, 2025 at 11:05 AM Oleh Nykyforchyn <oleh.nyk at gmail.com> wrote:
>
> Hello,
>
> I encountered a funny bug when a share is mounted with vers=3.1.1, posix,... If a file size has bits 0x410 = ATTR_DIRECTORY | ATTR_REPARSE = 1040 set, then the file is regarded as a directory and its open fails. A simplest test example is any file 1040 bytes long.
>
> 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. I attach an example patch that solves the problem for me, obviously not ready for submission, but just to show which places in the code are subject to problems. The patch is against linux-6.12.6 kernel, but, AFAICS, nothing has changed since then in relevant places. If I have guessed more or less correctly what the intended functionality is, please feel free to use my patch as a basis for corrections.
>
> Best regards
>
> Olen Nykyforchyn



-- 
Thanks,

Steve
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-smb311-failure-to-open-files-of-length-1040-when-mou.patch
Type: text/x-patch
Size: 5037 bytes
Desc: not available
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20250216/672e1d8b/0001-smb311-failure-to-open-files-of-length-1040-when-mou.bin>


More information about the samba-technical mailing list