[SCM] Samba Shared Repository - branch v4-0-test updated - release-4-0-0alpha3-1713-g326b69b

Andrew Tridgell tridge at samba.org
Thu May 22 14:07:56 GMT 2008


The branch, v4-0-test has been updated
       via  326b69bc8064cbea357864cecd6bd27b50c57184 (commit)
      from  2bba77a768c3ed984af05b99c2f7781577d08ec3 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v4-0-test


- Log -----------------------------------------------------------------
commit 326b69bc8064cbea357864cecd6bd27b50c57184
Author: Andrew Tridgell <tridge at samba.org>
Date:   Fri May 23 00:07:12 2008 +1000

    fix make test for EAs again
    
    - go back to 4 byte alignment until I work out the rules that Vista
      wants more exactly
    - add the zero sized EA handling for SMB2 more generically

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

Summary of changes:
 source/libcli/smb2/create.c         |    4 ++--
 source/ntvfs/posix/pvfs_fileinfo.c  |    5 +++++
 source/ntvfs/posix/pvfs_qfileinfo.c |    4 ----
 source/smb_server/blob.c            |    4 ++--
 4 files changed, 9 insertions(+), 8 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/libcli/smb2/create.c b/source/libcli/smb2/create.c
index 9d28bbf..b1b8b0c 100644
--- a/source/libcli/smb2/create.c
+++ b/source/libcli/smb2/create.c
@@ -117,8 +117,8 @@ struct smb2_request *smb2_create_send(struct smb2_tree *tree, struct smb2_create
 
 	if (io->in.eas.num_eas != 0) {
 		DATA_BLOB b = data_blob_talloc(req, NULL, 
-					       ea_list_size_chained(io->in.eas.num_eas, io->in.eas.eas, 8));
-		ea_put_list_chained(b.data, io->in.eas.num_eas, io->in.eas.eas, 8);
+					       ea_list_size_chained(io->in.eas.num_eas, io->in.eas.eas, 4));
+		ea_put_list_chained(b.data, io->in.eas.num_eas, io->in.eas.eas, 4);
 		status = smb2_create_blob_add(req, &io->in.blobs,
 					      SMB2_CREATE_TAG_EXTA, b);
 		if (!NT_STATUS_IS_OK(status)) {
diff --git a/source/ntvfs/posix/pvfs_fileinfo.c b/source/ntvfs/posix/pvfs_fileinfo.c
index 4c383ed..e35f42e 100644
--- a/source/ntvfs/posix/pvfs_fileinfo.c
+++ b/source/ntvfs/posix/pvfs_fileinfo.c
@@ -75,6 +75,11 @@ NTSTATUS pvfs_fill_dos_info(struct pvfs_state *pvfs, struct pvfs_filename *name,
 	name->dos.alloc_size = pvfs_round_alloc_size(pvfs, name->st.st_size);
 	name->dos.nlink = name->st.st_nlink;
 	name->dos.ea_size = 4;
+	if (pvfs->ntvfs->ctx->protocol == PROTOCOL_SMB2) {
+		/* SMB2 represents a null EA with zero bytes */
+		name->dos.ea_size = 0;
+	}
+	
 	name->dos.file_id = (((uint64_t)name->st.st_dev)<<32) | name->st.st_ino;
 	name->dos.flags = 0;
 
diff --git a/source/ntvfs/posix/pvfs_qfileinfo.c b/source/ntvfs/posix/pvfs_qfileinfo.c
index 102660a..6e3092b 100644
--- a/source/ntvfs/posix/pvfs_qfileinfo.c
+++ b/source/ntvfs/posix/pvfs_qfileinfo.c
@@ -298,10 +298,6 @@ static NTSTATUS pvfs_map_fileinfo(struct pvfs_state *pvfs,
 			(name->dos.attrib & FILE_ATTRIBUTE_DIRECTORY)? 1 : 0;
 		info->all_info2.out.file_id        = name->dos.file_id;
 		info->all_info2.out.ea_size        = name->dos.ea_size;
-		if (info->all_info2.out.ea_size == 4) {
-			/* SMB2 uses zero for a empty EA set */
-			info->all_info2.out.ea_size = 0;
-		}
 		info->all_info2.out.access_mask    = 0; /* only set by qfileinfo */
 		info->all_info2.out.position       = 0; /* only set by qfileinfo */
 		info->all_info2.out.mode           = 0; /* only set by qfileinfo */
diff --git a/source/smb_server/blob.c b/source/smb_server/blob.c
index cea4c60..368b81d 100644
--- a/source/smb_server/blob.c
+++ b/source/smb_server/blob.c
@@ -476,12 +476,12 @@ NTSTATUS smbsrv_push_passthru_fileinfo(TALLOC_CTX *mem_ctx,
 		}
 
 		list_size = ea_list_size_chained(st->all_eas.out.num_eas,
-						 st->all_eas.out.eas, 8);
+						 st->all_eas.out.eas, 4);
 		BLOB_CHECK(smbsrv_blob_grow_data(mem_ctx, blob, list_size));
 
 		ea_put_list_chained(blob->data,
 				    st->all_eas.out.num_eas,
-				    st->all_eas.out.eas, 8);
+				    st->all_eas.out.eas, 4);
 		return NT_STATUS_OK;
 
 	case RAW_FILEINFO_SMB2_ALL_INFORMATION:


-- 
Samba Shared Repository


More information about the samba-cvs mailing list