svn commit: samba r6342 - in branches/SAMBA_4_0/source: client include libcli/raw ntvfs/posix smb_server torture/raw

tridge at samba.org tridge at samba.org
Thu Apr 14 13:19:41 GMT 2005


Author: tridge
Date: 2005-04-14 13:19:40 +0000 (Thu, 14 Apr 2005)
New Revision: 6342

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=6342

Log:
fixed a bad union assumption that caused ACLs to fail on 64 bit machines

Thanks to lars and agruen for finding this

Modified:
   branches/SAMBA_4_0/source/client/client.c
   branches/SAMBA_4_0/source/include/smb_interfaces.h
   branches/SAMBA_4_0/source/libcli/raw/rawacl.c
   branches/SAMBA_4_0/source/libcli/raw/rawfileinfo.c
   branches/SAMBA_4_0/source/ntvfs/posix/pvfs_acl.c
   branches/SAMBA_4_0/source/smb_server/nttrans.c
   branches/SAMBA_4_0/source/torture/raw/acls.c


Changeset:
Modified: branches/SAMBA_4_0/source/client/client.c
===================================================================
--- branches/SAMBA_4_0/source/client/client.c	2005-04-14 08:44:28 UTC (rev 6341)
+++ branches/SAMBA_4_0/source/client/client.c	2005-04-14 13:19:40 UTC (rev 6342)
@@ -1870,7 +1870,7 @@
 
 	query.query_secdesc.level = RAW_FILEINFO_SEC_DESC;
 	query.query_secdesc.in.fnum = fnum;
-	query.query_secdesc.in.secinfo_flags = 0x7;
+	query.query_secdesc.secinfo_flags = 0x7;
 
 	status = smb_raw_fileinfo(cli->tree, mem_ctx, &query);
 	if (!NT_STATUS_IS_OK(status)) {

Modified: branches/SAMBA_4_0/source/include/smb_interfaces.h
===================================================================
--- branches/SAMBA_4_0/source/include/smb_interfaces.h	2005-04-14 08:44:28 UTC (rev 6341)
+++ branches/SAMBA_4_0/source/include/smb_interfaces.h	2005-04-14 13:19:40 UTC (rev 6342)
@@ -677,11 +677,9 @@
 	/* RAW_FILEINFO_SEC_DESC */
 	struct {
 		enum smb_fileinfo_level level;
+		union smb_fileinfo_in in;
+		uint32_t secinfo_flags;
 		struct {
-			uint16_t fnum;
-			uint32_t secinfo_flags;
-		} in;
-		struct {
 			struct security_descriptor *sd;
 		} out;
 	} query_secdesc;

Modified: branches/SAMBA_4_0/source/libcli/raw/rawacl.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/raw/rawacl.c	2005-04-14 08:44:28 UTC (rev 6341)
+++ branches/SAMBA_4_0/source/libcli/raw/rawacl.c	2005-04-14 13:19:40 UTC (rev 6342)
@@ -40,7 +40,7 @@
 
 	SSVAL(params, 0, io->query_secdesc.in.fnum);
 	SSVAL(params, 2, 0); /* padding */
-	SIVAL(params, 4, io->query_secdesc.in.secinfo_flags);
+	SIVAL(params, 4, io->query_secdesc.secinfo_flags);
 
 	nt.in.params.data = params;
 	nt.in.params.length = 8;

Modified: branches/SAMBA_4_0/source/libcli/raw/rawfileinfo.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/raw/rawfileinfo.c	2005-04-14 08:44:28 UTC (rev 6341)
+++ branches/SAMBA_4_0/source/libcli/raw/rawfileinfo.c	2005-04-14 13:19:40 UTC (rev 6342)
@@ -310,7 +310,7 @@
 		return NULL;
 	}
 
-	SIVAL(tp.in.params.data, 0, fnum);
+	SSVAL(tp.in.params.data, 0, fnum);
 	SSVAL(tp.in.params.data, 2, info_level);
 
 	req = smb_raw_trans2_send(tree, &tp);

Modified: branches/SAMBA_4_0/source/ntvfs/posix/pvfs_acl.c
===================================================================
--- branches/SAMBA_4_0/source/ntvfs/posix/pvfs_acl.c	2005-04-14 08:44:28 UTC (rev 6341)
+++ branches/SAMBA_4_0/source/ntvfs/posix/pvfs_acl.c	2005-04-14 13:19:40 UTC (rev 6342)
@@ -309,7 +309,7 @@
 		return NT_STATUS_INVALID_ACL;
 	}
 
-	normalise_sd_flags(sd, info->query_secdesc.in.secinfo_flags);
+	normalise_sd_flags(sd, info->query_secdesc.secinfo_flags);
 
 	info->query_secdesc.out.sd = sd;
 

Modified: branches/SAMBA_4_0/source/smb_server/nttrans.c
===================================================================
--- branches/SAMBA_4_0/source/smb_server/nttrans.c	2005-04-14 08:44:28 UTC (rev 6341)
+++ branches/SAMBA_4_0/source/smb_server/nttrans.c	2005-04-14 13:19:40 UTC (rev 6342)
@@ -197,7 +197,7 @@
 
 	io->query_secdesc.level            = RAW_FILEINFO_SEC_DESC;
 	io->query_secdesc.in.fnum          = SVAL(trans->in.params.data, 0);
-	io->query_secdesc.in.secinfo_flags = IVAL(trans->in.params.data, 4);
+	io->query_secdesc.secinfo_flags    = IVAL(trans->in.params.data, 4);
 
 	/* call the backend - notice that we do it sync for now, until we support
 	   async nttrans requests */	

Modified: branches/SAMBA_4_0/source/torture/raw/acls.c
===================================================================
--- branches/SAMBA_4_0/source/torture/raw/acls.c	2005-04-14 08:44:28 UTC (rev 6341)
+++ branches/SAMBA_4_0/source/torture/raw/acls.c	2005-04-14 13:19:40 UTC (rev 6342)
@@ -71,7 +71,7 @@
 	
 	q.query_secdesc.level = RAW_FILEINFO_SEC_DESC;
 	q.query_secdesc.in.fnum = fnum;
-	q.query_secdesc.in.secinfo_flags = 
+	q.query_secdesc.secinfo_flags = 
 		SECINFO_OWNER |
 		SECINFO_GROUP |
 		SECINFO_DACL;
@@ -93,7 +93,7 @@
 
 	set.set_secdesc.level = RAW_SFILEINFO_SEC_DESC;
 	set.set_secdesc.file.fnum = fnum;
-	set.set_secdesc.in.secinfo_flags = q.query_secdesc.in.secinfo_flags;
+	set.set_secdesc.in.secinfo_flags = q.query_secdesc.secinfo_flags;
 	set.set_secdesc.in.sd = sd;
 
 	status = smb_raw_setfileinfo(cli->tree, &set);
@@ -181,7 +181,7 @@
 
 	q.query_secdesc.level = RAW_FILEINFO_SEC_DESC;
 	q.query_secdesc.in.fnum = fnum;
-	q.query_secdesc.in.secinfo_flags = 
+	q.query_secdesc.secinfo_flags = 
 		SECINFO_OWNER |
 		SECINFO_GROUP |
 		SECINFO_DACL;
@@ -282,7 +282,7 @@
 	printf("get the original sd\n");
 	q.query_secdesc.level = RAW_FILEINFO_SEC_DESC;
 	q.query_secdesc.in.fnum = fnum;
-	q.query_secdesc.in.secinfo_flags = SECINFO_DACL | SECINFO_OWNER;
+	q.query_secdesc.secinfo_flags = SECINFO_DACL | SECINFO_OWNER;
 	status = smb_raw_fileinfo(cli->tree, mem_ctx, &q);
 	CHECK_STATUS(status, NT_STATUS_OK);
 	sd_orig = q.query_secdesc.out.sd;
@@ -520,7 +520,7 @@
 	printf("get the original sd\n");
 	q.query_secdesc.level = RAW_FILEINFO_SEC_DESC;
 	q.query_secdesc.in.fnum = fnum;
-	q.query_secdesc.in.secinfo_flags = SECINFO_DACL | SECINFO_OWNER;
+	q.query_secdesc.secinfo_flags = SECINFO_DACL | SECINFO_OWNER;
 	status = smb_raw_fileinfo(cli->tree, mem_ctx, &q);
 	CHECK_STATUS(status, NT_STATUS_OK);
 	sd_orig = q.query_secdesc.out.sd;
@@ -682,7 +682,7 @@
 	printf("get the original sd\n");
 	q.query_secdesc.level = RAW_FILEINFO_SEC_DESC;
 	q.query_secdesc.in.fnum = fnum;
-	q.query_secdesc.in.secinfo_flags = SECINFO_DACL | SECINFO_OWNER;
+	q.query_secdesc.secinfo_flags = SECINFO_DACL | SECINFO_OWNER;
 	status = smb_raw_fileinfo(cli->tree, mem_ctx, &q);
 	CHECK_STATUS(status, NT_STATUS_OK);
 	sd_orig = q.query_secdesc.out.sd;
@@ -800,7 +800,7 @@
 	printf("get the original sd\n");
 	q.query_secdesc.level = RAW_FILEINFO_SEC_DESC;
 	q.query_secdesc.in.fnum = fnum;
-	q.query_secdesc.in.secinfo_flags = SECINFO_DACL | SECINFO_OWNER;
+	q.query_secdesc.secinfo_flags = SECINFO_DACL | SECINFO_OWNER;
 	status = smb_raw_fileinfo(cli->tree, mem_ctx, &q);
 	CHECK_STATUS(status, NT_STATUS_OK);
 	sd_orig = q.query_secdesc.out.sd;
@@ -1022,7 +1022,7 @@
 	printf("get the original sd\n");
 	q.query_secdesc.level = RAW_FILEINFO_SEC_DESC;
 	q.query_secdesc.in.fnum = fnum;
-	q.query_secdesc.in.secinfo_flags = SECINFO_DACL | SECINFO_OWNER;
+	q.query_secdesc.secinfo_flags = SECINFO_DACL | SECINFO_OWNER;
 	status = smb_raw_fileinfo(cli->tree, mem_ctx, &q);
 	CHECK_STATUS(status, NT_STATUS_OK);
 	sd_orig = q.query_secdesc.out.sd;
@@ -1207,7 +1207,7 @@
 	CHECK_ACCESS_FLAGS(fnum2, SEC_RIGHTS_FILE_ALL);
 
 	q.query_secdesc.in.fnum = fnum2;
-	q.query_secdesc.in.secinfo_flags = SECINFO_DACL | SECINFO_OWNER;
+	q.query_secdesc.secinfo_flags = SECINFO_DACL | SECINFO_OWNER;
 	status = smb_raw_fileinfo(cli->tree, mem_ctx, &q);
 	CHECK_STATUS(status, NT_STATUS_OK);
 	smbcli_close(cli->tree, fnum2);
@@ -1321,7 +1321,7 @@
 	printf("get the original sd\n");
 	q.query_secdesc.level = RAW_FILEINFO_SEC_DESC;
 	q.query_secdesc.in.fnum = fnum;
-	q.query_secdesc.in.secinfo_flags = SECINFO_DACL | SECINFO_OWNER;
+	q.query_secdesc.secinfo_flags = SECINFO_DACL | SECINFO_OWNER;
 	status = smb_raw_fileinfo(cli->tree, mem_ctx, &q);
 	CHECK_STATUS(status, NT_STATUS_OK);
 	sd_orig = q.query_secdesc.out.sd;



More information about the samba-cvs mailing list