[SCM] Samba Shared Repository - branch master updated

Jeremy Allison jra at samba.org
Tue Mar 19 18:47:01 UTC 2019


The branch, master has been updated
       via  7e77f1fea6c smbd: Focus smb_file_link_information on correct posix'ness
       via  74ca95f804a smbd: Enhance debugging for setting hard links
      from  b2c2c4c3e6c talloc: Fix alignment issues for casting pointers

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 7e77f1fea6c922b76a6961e477a4d72815f08886
Author: Volker Lendecke <vl at samba.org>
Date:   Mon Mar 18 12:40:06 2019 +0100

    smbd: Focus smb_file_link_information on correct posix'ness
    
    In the SMB1 unix extensions, posix'ness is a property of the SMB
    request, because it's tied to the connection. In the upcoming SMB3
    extensions, this will become a property of the file name, it's being
    set at SMB2_CREATE time. To correctly transfer posix'ness of the
    filename to the destination name, we can't look at the
    req->posix_pathnames here, the SMB2_SETINFO call has not set
    that. This is still correct for SMB1, as the per-connection posix'ness
    has spilled into the filename there too.
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    
    Autobuild-User(master): Jeremy Allison <jra at samba.org>
    Autobuild-Date(master): Tue Mar 19 18:46:28 UTC 2019 on sn-devel-144

commit 74ca95f804a1dd385d33deaf07d47659aaa049f5
Author: Volker Lendecke <vl at samba.org>
Date:   Mon Mar 18 12:24:25 2019 +0100

    smbd: Enhance debugging for setting hard links
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

-----------------------------------------------------------------------

Summary of changes:
 source3/smbd/trans2.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
index 108bd570922..dd5973b089b 100644
--- a/source3/smbd/trans2.c
+++ b/source3/smbd/trans2.c
@@ -6128,6 +6128,7 @@ NTSTATUS hardlink_internals(TALLOC_CTX *ctx,
 		struct smb_filename *smb_fname_new)
 {
 	NTSTATUS status = NT_STATUS_OK;
+	bool ok;
 
 	/* source must already exist. */
 	if (!VALID_STAT(smb_fname_old->st)) {
@@ -6159,8 +6160,14 @@ NTSTATUS hardlink_internals(TALLOC_CTX *ctx,
 	}
 
 	/* Setting a hardlink to/from a stream isn't currently supported. */
-	if (is_ntfs_stream_smb_fname(smb_fname_old) ||
-	    is_ntfs_stream_smb_fname(smb_fname_new)) {
+	ok = is_ntfs_stream_smb_fname(smb_fname_old);
+	if (ok) {
+		DBG_DEBUG("Old name has streams\n");
+		return NT_STATUS_INVALID_PARAMETER;
+	}
+	ok = is_ntfs_stream_smb_fname(smb_fname_new);
+	if (ok) {
+		DBG_DEBUG("New name has streams\n");
 		return NT_STATUS_INVALID_PARAMETER;
 	}
 
@@ -6868,7 +6875,7 @@ static NTSTATUS smb_file_link_information(connection_struct *conn,
 		return NT_STATUS_INVALID_PARAMETER;
 	}
 
-	if (req->posix_pathnames) {
+	if (smb_fname_src->flags & SMB_FILENAME_POSIX_PATH) {
 		srvstr_get_path_posix(ctx,
 				pdata,
 				req->flags2,
@@ -6877,6 +6884,7 @@ static NTSTATUS smb_file_link_information(connection_struct *conn,
 				len,
 				STR_TERMINATE,
 				&status);
+		ucf_flags |= UCF_POSIX_PATHNAMES;
 	} else {
 		srvstr_get_path(ctx,
 				pdata,


-- 
Samba Shared Repository



More information about the samba-cvs mailing list