svn commit: samba r21227 - in branches: SAMBA_3_0/source/include SAMBA_3_0/source/smbd SAMBA_3_0_25/source/include SAMBA_3_0_25/source/smbd

jra at samba.org jra at samba.org
Thu Feb 8 00:14:38 GMT 2007


Author: jra
Date: 2007-02-08 00:14:37 +0000 (Thu, 08 Feb 2007)
New Revision: 21227

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

Log:
Quick fix for Stevef - ensure the returned data on open
is 8 byte aligned.
Jeremy.

Modified:
   branches/SAMBA_3_0/source/include/trans2.h
   branches/SAMBA_3_0/source/smbd/trans2.c
   branches/SAMBA_3_0_25/source/include/trans2.h
   branches/SAMBA_3_0_25/source/smbd/trans2.c


Changeset:
Modified: branches/SAMBA_3_0/source/include/trans2.h
===================================================================
--- branches/SAMBA_3_0/source/include/trans2.h	2007-02-07 22:20:31 UTC (rev 21226)
+++ branches/SAMBA_3_0/source/include/trans2.h	2007-02-08 00:14:37 UTC (rev 21227)
@@ -394,6 +394,8 @@
 100 - end.
 */
 
+#define SMB_FILE_UNIX_BASIC_SIZE 100
+
 /* UNIX filetype mappings. */
 
 #define UNIX_TYPE_FILE 0

Modified: branches/SAMBA_3_0/source/smbd/trans2.c
===================================================================
--- branches/SAMBA_3_0/source/smbd/trans2.c	2007-02-07 22:20:31 UTC (rev 21226)
+++ branches/SAMBA_3_0/source/smbd/trans2.c	2007-02-08 00:14:37 UTC (rev 21227)
@@ -4914,9 +4914,9 @@
 	info_level_return = SVAL(pdata,12);
  
 	if (info_level_return == SMB_QUERY_FILE_UNIX_BASIC) {
-		*pdata_return_size = 6;
+		*pdata_return_size = 8 + SMB_FILE_UNIX_BASIC_SIZE;
 	} else {
-		*pdata_return_size = 6;
+		*pdata_return_size = 8;
 	}
 
 	/* Realloc the data size */
@@ -4931,9 +4931,11 @@
 
 	if (info_level_return == SMB_QUERY_FILE_UNIX_BASIC) {
 		SSVAL(pdata,4,SMB_QUERY_FILE_UNIX_BASIC);
-		store_file_unix_basic(pdata + 6, fsp, psbuf);
+		SSVAL(pdata,6,0); /* Padding. */
+		store_file_unix_basic(pdata + 8, fsp, psbuf);
 	} else {
 		SSVAL(pdata,4,SMB_NO_INFO_LEVEL_RETURNED);
+		SSVAL(pdata,6,0); /* Padding. */
 	}
 
 	return status;
@@ -5067,9 +5069,9 @@
 	info_level_return = SVAL(pdata,12);
  
 	if (info_level_return == SMB_QUERY_FILE_UNIX_BASIC) {
-		*pdata_return_size = 6;
+		*pdata_return_size = 8 + SMB_FILE_UNIX_BASIC_SIZE;
 	} else {
-		*pdata_return_size = 6;
+		*pdata_return_size = 8;
 	}
 
 	/* Realloc the data size */
@@ -5095,9 +5097,11 @@
 	SSVAL(pdata,2,fsp->fnum);
 	if (info_level_return == SMB_QUERY_FILE_UNIX_BASIC) {
 		SSVAL(pdata,4,SMB_QUERY_FILE_UNIX_BASIC);
-		store_file_unix_basic(pdata + 6, fsp, psbuf);
+		SSVAL(pdata,6,0); /* padding. */
+		store_file_unix_basic(pdata + 8, fsp, psbuf);
 	} else {
 		SSVAL(pdata,4,SMB_NO_INFO_LEVEL_RETURNED);
+		SSVAL(pdata,6,0); /* padding. */
 	}
 	return NT_STATUS_OK;
 }

Modified: branches/SAMBA_3_0_25/source/include/trans2.h
===================================================================
--- branches/SAMBA_3_0_25/source/include/trans2.h	2007-02-07 22:20:31 UTC (rev 21226)
+++ branches/SAMBA_3_0_25/source/include/trans2.h	2007-02-08 00:14:37 UTC (rev 21227)
@@ -394,6 +394,8 @@
 100 - end.
 */
 
+#define SMB_FILE_UNIX_BASIC_SIZE 100
+
 /* UNIX filetype mappings. */
 
 #define UNIX_TYPE_FILE 0

Modified: branches/SAMBA_3_0_25/source/smbd/trans2.c
===================================================================
--- branches/SAMBA_3_0_25/source/smbd/trans2.c	2007-02-07 22:20:31 UTC (rev 21226)
+++ branches/SAMBA_3_0_25/source/smbd/trans2.c	2007-02-08 00:14:37 UTC (rev 21227)
@@ -4908,9 +4908,9 @@
 	info_level_return = SVAL(pdata,12);
  
 	if (info_level_return == SMB_QUERY_FILE_UNIX_BASIC) {
-		*pdata_return_size = 6;
+		*pdata_return_size = 8 + SMB_FILE_UNIX_BASIC_SIZE;
 	} else {
-		*pdata_return_size = 6;
+		*pdata_return_size = 8;
 	}
 
 	/* Realloc the data size */
@@ -4925,9 +4925,11 @@
 
 	if (info_level_return == SMB_QUERY_FILE_UNIX_BASIC) {
 		SSVAL(pdata,4,SMB_QUERY_FILE_UNIX_BASIC);
-		store_file_unix_basic(pdata + 6, fsp, psbuf);
+		SSVAL(pdata,6,0); /* Padding. */
+		store_file_unix_basic(pdata + 8, fsp, psbuf);
 	} else {
 		SSVAL(pdata,4,SMB_NO_INFO_LEVEL_RETURNED);
+		SSVAL(pdata,6,0); /* Padding. */
 	}
 
 	return status;
@@ -5061,9 +5063,9 @@
 	info_level_return = SVAL(pdata,12);
  
 	if (info_level_return == SMB_QUERY_FILE_UNIX_BASIC) {
-		*pdata_return_size = 6;
+		*pdata_return_size = 8 + SMB_FILE_UNIX_BASIC_SIZE;
 	} else {
-		*pdata_return_size = 6;
+		*pdata_return_size = 8;
 	}
 
 	/* Realloc the data size */
@@ -5089,9 +5091,11 @@
 	SSVAL(pdata,2,fsp->fnum);
 	if (info_level_return == SMB_QUERY_FILE_UNIX_BASIC) {
 		SSVAL(pdata,4,SMB_QUERY_FILE_UNIX_BASIC);
-		store_file_unix_basic(pdata + 6, fsp, psbuf);
+		SSVAL(pdata,6,0); /* padding. */
+		store_file_unix_basic(pdata + 8, fsp, psbuf);
 	} else {
 		SSVAL(pdata,4,SMB_NO_INFO_LEVEL_RETURNED);
+		SSVAL(pdata,6,0); /* padding. */
 	}
 	return NT_STATUS_OK;
 }



More information about the samba-cvs mailing list