[PATCH] Final removal of lp_posix_pathnames() from the smbd server main code paths.

Scott Lovenberg scott.lovenberg at gmail.com
Wed Mar 23 23:15:10 UTC 2016


On Wed, Mar 23, 2016 at 5:23 PM, Jeremy Allison <jra at samba.org> wrote:
> On Wed, Mar 23, 2016 at 03:11:24PM -0700, Jeremy Allison wrote:
>> On Thu, Mar 24, 2016 at 12:02:48AM +0200, Uri Simchoni wrote:
>> > I started reviewing it, here's where I am (note the one comment):
>> > >>>
>> > >>> 13). Remove lp_posix_pathnames() from msdfs code.
>> > >>> Last lp_posix_pathnames() in the SMB1/2/3 code paths.
>> > Not sure I quite get this one - lp_posix_pathnames() is derived from a
>> > protocol handshake and we're replacing it by a heuristic?
>>
>> Yes, this isn't 100% compatibile with the previous
>> method. But it should work well enough in real-world
>> situations that it can replace it. And the the SMB2
>> case for msdfs there is no protocol handshake to look
>> at so I'm having to use what I have here.

One thought and one confession / warning:
Correct me if I'm wrong, but wasn't there an edge case and corner case
for MSDFS proxied roots and/or NTFS forks (alternate data stream, for
the curious and unaware) especially when the server address is
expressed as IPv6 and the ':' is ambiguous?

Also, not sure if this matters at this layer and on the server side,
but in the client userland mount helper, mount.cifs, we kind of
translate all '/' characters in a UNC to '\\' before handing off to
the kernel.  I recall that little gem being a brain-fart of mine a few
years back when I was fresh (dropped-)out of college and knew just
enough to be dangerous to myself with the confidence to match. ;)

-- 
Peace and Blessings,
-Scott.



More information about the samba-technical mailing list