SMB3 issues with smbclient
jra at samba.org
Tue Dec 20 01:12:11 UTC 2016
On Tue, Dec 20, 2016 at 11:27:46AM +1030, Paul Smedley wrote:
> Hi Jeremy,
> On 20/12/16 11:18, Jeremy Allison wrote:
> >On Tue, Dec 20, 2016 at 10:48:35AM +1030, Paul Smedley wrote:
> >>Hi All,
> >>As I've posted previously, I'm working on a Samba client for the OS/2
> >>operating system, which is a fuse style plugin for 'netdrive'.
> >>I've just discovered what I think is a bug in SMB2+ support, which I believe
> >>also exists in smbclient.
> >>A user reported a problem to me, with file corruption when saving a file to
> >>a Samba share (the file ends up as 0 bytes),
> >>I believe this is due to an an incorrect fnum being returned from cli_open()
> >>when SMB2 is used.
> >>In my own code, with a file being opened over SMB1, I get fnum in the 10000+
> >>range which I'd expect. Additionally, each file opened gets a differeent
> >>When a file is opened via SMB2, in my code fnum is always 1.
> >>I tried similar operations using smbclient - similar things occur:
> >>- SMB1 I get valid fnum returned
> >>- SMB3 I get a fnum of 2 (why this is different to my own testcase I'm not
> >>Any thoughts?
> >>Should cli_open() be returning a valid valid for fnum when SMB3 is used?
> >What version of Samba ? In current 4.5.x cli_open() under the covers
> >will create an SMB1/2/3 handle depending on what has been negotiated
> >on the wire.
> 4.4.7 - I added a d_printf("fnum = %d\n",fnum); after the first cli_open()
> call in smbclient and with default settings (ie SMB1) get an fnum like
> 26614; with -mSMB3 - it's always 2.
> I can test with 4.5.x if you think it's worthwhile.
As it's client code it should be relatively easy
to walk through with gdb and watch where it goes
into the SMB2 requests and see what's going wrong.
More information about the samba-technical