The Samba-Bugzilla – Attachment 9147 Details for
Bug 10097
MacOSX 10.9 will not follow path-based DFS referrals handed out by Samba.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
git-am fix for 3.6.next
bug-10097-3.6.x.patch (text/plain), 3.68 KB, created by
Jeremy Allison
on 2013-08-19 20:12:56 UTC
(
hide
)
Description:
git-am fix for 3.6.next
Filename:
MIME Type:
Creator:
Jeremy Allison
Created:
2013-08-19 20:12:56 UTC
Size:
3.68 KB
patch
obsolete
>From 7a4687e929a49c49c7c2d3013e701b4bf3d8336a Mon Sep 17 00:00:00 2001 >From: Richard Sharpe <realrichardsharpe@gmail.com> >Date: Mon, 19 Aug 2013 13:14:55 -0700 >Subject: [PATCH] Fix bug #10097 - MacOSX 10.9 will not follow path-based DFS > referrals handed out by Samba. > >Windows overloads the EA Length field in the DIRECTORY INFO leves of FIND FIRST/FIND NEXT. > >This field indicates either the REPARSE_TAG if the file/folder has a reparse proint or >the EA Length if it has EAs, and is the fundamental reason you cannot have both on a >file or folder. > >Signed-off-by: Richard Sharpe <rsharpe@samba.org> >Reviewed-by: Jeremy Allison <jra@samba.org> >--- > source3/include/ntioctl.h | 1 + > source3/smbd/dosmode.c | 5 +++++ > source3/smbd/trans2.c | 19 +++++++++++++------ > 3 files changed, 19 insertions(+), 6 deletions(-) > >diff --git a/source3/include/ntioctl.h b/source3/include/ntioctl.h >index 925a06f..c990ebc 100644 >--- a/source3/include/ntioctl.h >+++ b/source3/include/ntioctl.h >@@ -122,6 +122,7 @@ > #define IO_REPARSE_TAG_MOUNT_POINT 0xA0000003 > #define IO_REPARSE_TAG_HSM 0xC0000004 > #define IO_REPARSE_TAG_SIS 0x80000007 >+#define IO_REPARSE_TAG_DFS 0x8000000A > > > /* For FSCTL_GET_SHADOW_COPY_DATA ...*/ >diff --git a/source3/smbd/dosmode.c b/source3/smbd/dosmode.c >index 823d44d..326e995 100644 >--- a/source3/smbd/dosmode.c >+++ b/source3/smbd/dosmode.c >@@ -484,6 +484,11 @@ uint32 dos_mode_msdfs(connection_struct *conn, > > result = filter_mode_by_protocol(result); > >+ /* >+ * Add in that it is a reparse point >+ */ >+ result |= FILE_ATTRIBUTE_REPARSE_POINT; >+ > DEBUG(8,("dos_mode_msdfs returning ")); > > if (result & FILE_ATTRIBUTE_HIDDEN) DEBUG(8, ("h")); >diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c >index 43670e9..9a4ee0e5 100644 >--- a/source3/smbd/trans2.c >+++ b/source3/smbd/trans2.c >@@ -24,6 +24,7 @@ > */ > > #include "includes.h" >+#include "ntioctl.h" > #include "system/filesys.h" > #include "version.h" > #include "smbd/smbd.h" >@@ -1821,12 +1822,14 @@ static bool smbd_marshall_dir_entry(TALLOC_CTX *ctx, > SOFF_T(p,0,allocation_size); p += 8; > SIVAL(p,0,mode); p += 4; > q = p; p += 4; /* q is placeholder for name length. */ >- { >+ if (mode & FILE_ATTRIBUTE_REPARSE_POINT) { >+ SIVAL(p, 0, IO_REPARSE_TAG_DFS); >+ } else { > unsigned int ea_size = estimate_ea_size(conn, NULL, > smb_fname->base_name); > SIVAL(p,0,ea_size); /* Extended attributes */ >- p += 4; > } >+ p += 4; > /* Clear the short name buffer. This is > * IMPORTANT as not doing so will trigger > * a Win2k client bug. JRA. >@@ -1998,12 +2001,14 @@ static bool smbd_marshall_dir_entry(TALLOC_CTX *ctx, > SOFF_T(p,0,allocation_size); p += 8; > SIVAL(p,0,mode); p += 4; > q = p; p += 4; /* q is placeholder for name length. */ >- { >+ if (mode & FILE_ATTRIBUTE_REPARSE_POINT) { >+ SIVAL(p, 0, IO_REPARSE_TAG_DFS); >+ } else { > unsigned int ea_size = estimate_ea_size(conn, NULL, > smb_fname->base_name); > SIVAL(p,0,ea_size); /* Extended attributes */ >- p +=4; > } >+ p +=4; > SIVAL(p,0,0); p += 4; /* Unknown - reserved ? */ > SBVAL(p,0,file_index); p += 8; > len = srvstr_push(base_data, flags2, p, >@@ -2044,12 +2049,14 @@ static bool smbd_marshall_dir_entry(TALLOC_CTX *ctx, > SOFF_T(p,0,allocation_size); p += 8; > SIVAL(p,0,mode); p += 4; > q = p; p += 4; /* q is placeholder for name length */ >- { >+ if (mode & FILE_ATTRIBUTE_REPARSE_POINT) { >+ SIVAL(p, 0, IO_REPARSE_TAG_DFS); >+ } else { > unsigned int ea_size = estimate_ea_size(conn, NULL, > smb_fname->base_name); > SIVAL(p,0,ea_size); /* Extended attributes */ >- p +=4; > } >+ p +=4; > /* Clear the short name buffer. This is > * IMPORTANT as not doing so will trigger > * a Win2k client bug. JRA. >-- >1.8.3 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
rsharpe
:
review+
Actions:
View
Attachments on
bug 10097
:
9146
| 9147 |
15065
|
15066
|
15067