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