One little patch for samba libsmb
Shawn Pringle
shawn.pringle at gmail.com
Fri Nov 29 13:26:24 MST 2013
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?
Shawn Pringle
More information about the samba-technical
mailing list