SMB3 issues with smbclient

Paul Smedley paul at smedley.id.au
Wed Dec 21 20:21:40 UTC 2016


Hi Jeremy!

On 22/12/16 03:54, Jeremy Allison wrote:
> On Wed, Dec 21, 2016 at 06:56:23PM +1030, Paul Smedley wrote:
>> Hi Again Metze!
>>
>> On 21/12/16 07:10, Paul Smedley wrote:
>> <snip>
>>
>>>> What was the problem in your case? Did you send the value "1" over
>>>> the net?
>>>
>>> In this case, a particular application (MED editor) when saving a file
>>> on a SMB2+ share, creates a 0 byte file. Same application and plugin
>>> over SMB1 works fine.
>>>
>>> I'll comb back through the logs and potentially add some more logging
>>> and see what I can fine.
>>>
>>> I'll also test against a Win2k server, just to rule out the issue being
>>> with Samba Server.
>> OK some updates.
>>
>> Issues happens with both Samba Server 4.4.5 & Win2k08.
>>
>> I had a closer look at the logs. cli_ftruncate() is failing with SMB2+.
>>
>> Part of the Netdrive (kinda like Fuse but for OS/2) api is a command to set
>> the file size.
>>
>> The implementation of this calls:
>> 	if (!NT_STATUS_IS_OK(cli_ftruncate(cli, file->fd, newsize)))
>> file->fd is the fnum of the file handle, newsize is the size.
>>
>> This works fine with SMB1. With SMB3, cli_errno(cli) returns an errno of 22.
>>
>> Digging in more now....
>
> Good catch - looks like we missed converting cli_ftruncate() to
> call SMB2+ under the covers.
>
> Inside cli_getatr() for example we have:
>
>         if (smbXcli_conn_protocol(cli->conn) >= PROTOCOL_SMB2_02) {
>                 return cli_smb2_getatr(cli,
>                                         fname,
>                                         attr,
>                                         size,
>                                         write_time);
>         }
>
> We need the same adding for cli_ftruncate() and a callout
> to a cli_smb2_ftruncate() which needs adding inside
> source3/libsmb/cli_smb2_fnum.c.
>
> Can you log a bug on this and I'll see if I can quickly
> code this up over the holidays ?
>
> As this is exposed via libsmbclient we need to fix this
> asap as the Gnome or KDE vfs clients may trip over this.

https://bugzilla.samba.org/show_bug.cgi?id=12479

Thanks for confirming :)

Cheers,

Paul



More information about the samba-technical mailing list