One little patch for samba libsmb

Andrew Bartlett abartlet at samba.org
Sun Dec 1 14:02:26 MST 2013


On Fri, 2013-11-29 at 17:26 -0300, Shawn Pringle wrote:
> On 11/24/2013 11:38 PM, Andrew Bartlett wrote:
> > On Sun, 2013-11-24 at 19:24 -0300, Shawn Pringle wrote:
> >> On 11/24/2013 06:22 PM, Andrew Bartlett wrote:
> >>> On Sat, 2013-11-23 at 12:20 -0300, Shawn Pringle wrote:
> >>>> On 11/22/2013 01:20 AM, Andrew Bartlett wrote:
> >>>>> On Thu, 2013-11-07 at 10:47 -0300, Shawn Pringle wrote:
> >>>>>> I've found a bug in samba-3.6.8.  Some file names will be missing the
> >>>>>> first letter when listing.  I traced the problem to a call to
> >>>>>> align_string() in source3/libsmb/clilist.c.
> >>>>>>
> >>>>>> Now the issue seems to be some OSes align their strings on the two byte
> >>>>>> boundary where as others do not.  To reproduce the bug you must have a
> >>>>>> Windows 98 with long filenames in them and the strings allocated need to
> >>>>>> happen to be located at an odd numbered address in memory.  With two
> >>>>>> score file names you will likely see this problem occur.
> >>>>>>
> >>>>>> I am not sure whether cli->win95 is the correct condition to test for by
> >>>>>> itself.  It is a starting point.
> >>>>>>
> >>>>>> 89c89,94
> >>>>>> <             p += align_string(base_ptr, p, 0);
> >>>>>> ---
> >>>>>>>             /* The following align_string call would misalign the pointer
> >>>>>>>              * to file names listed from a Windows 98 machine.*/  
> >>>>>>>             if (!cli->win95)
> >>>>>>>                 p += align_string(base_ptr, p, 0);
> >>>>>> Have a nice day.
> >>>>> Protocol sniffing for Windows 95/98 seems the wrong way to handle this.  Is there really no other way?
> >>>>>
> >>>>>
> >>>> What is the meaning of 'protocol sniffing'?
> >>> It is a term describing having differing behaviour based on the presumed
> >>> implementation of the client, based on flags like 'is windows 95'.  Over
> >>> time, we have generally come to regard such special cases as incorrect,
> >>> that there is generally a more elegant, general and correct way to
> >>> handle such things. 
> >>>
> >>> Andrew Bartlett
> >>>
> >> This flag is for the server we are connecting to.  Perhaps it is Unicode
> >> vs. non-Unicode related.  Is there a (searchable and free) specification
> >> that the devs go by here?  That such an old machine with the appropriate
> >> patches may indeed align the string on the 2-byte boundaries.  I would
> >> expect them to be 8-bit character strings when they are sent over the
> >> wire.  They are, otherwise the symptom would be files appearing to not
> >> have any filename rather than just missing the first letter.
> > There is.  See http://msdn.microsoft.com/en-us/library/ee442092.aspx and
> > http://msdn.microsoft.com/en-us/library/cc246231.aspx
> >
> > You can ask questions on the cifs-protocol at lists.samba.org list, you can
> > ask questions of Microsoft at dochelp at microsoft.com, but CC the list if
> > you do so others can also help and see the answer.
> >
> > Finally, please keep the samba-technical mailing list CC'ed, so others
> > can help and you don't get lost in my personal inbox. 
> >
> > Andrew Bartlett
> >
> 
> It seems this bug has already been found and reported at least once: bug
> # 9114
> 
> https://bugzilla.samba.org/show_bug.cgi?id=9114
> 
> Perhaps, this is fixed in a newer version.  The status is marked as
> 'ASSIGNED'.  Has the attached patch been applied by 4.1.0?

>From the date of the patch in in master, it looks like it is in 4.0 and
4.1.  

Andrew Bartlett

-- 
Andrew Bartlett
http://samba.org/~abartlet/
Authentication Developer, Samba Team  http://samba.org
Samba Developer, Catalyst IT          http://catalyst.net.nz/services/samba






More information about the samba-technical mailing list