1
0
mirror of https://github.com/samba-team/samba.git synced 2025-08-03 04:22:09 +03:00

r21227: Quick fix for Stevef - ensure the returned data on open

is 8 byte aligned.
Jeremy.
(This used to be commit 7645044fcf)
This commit is contained in:
Jeremy Allison
2007-02-08 00:14:37 +00:00
committed by Gerald (Jerry) Carter
parent ffe646b1e6
commit 778f3a00f0
2 changed files with 12 additions and 6 deletions

View File

@ -394,6 +394,8 @@ Offset Size Name
100 - end. 100 - end.
*/ */
#define SMB_FILE_UNIX_BASIC_SIZE 100
/* UNIX filetype mappings. */ /* UNIX filetype mappings. */
#define UNIX_TYPE_FILE 0 #define UNIX_TYPE_FILE 0

View File

@ -4914,9 +4914,9 @@ static NTSTATUS smb_posix_mkdir(connection_struct *conn,
info_level_return = SVAL(pdata,12); info_level_return = SVAL(pdata,12);
if (info_level_return == SMB_QUERY_FILE_UNIX_BASIC) { if (info_level_return == SMB_QUERY_FILE_UNIX_BASIC) {
*pdata_return_size = 6; *pdata_return_size = 8 + SMB_FILE_UNIX_BASIC_SIZE;
} else { } else {
*pdata_return_size = 6; *pdata_return_size = 8;
} }
/* Realloc the data size */ /* Realloc the data size */
@ -4931,9 +4931,11 @@ static NTSTATUS smb_posix_mkdir(connection_struct *conn,
if (info_level_return == SMB_QUERY_FILE_UNIX_BASIC) { if (info_level_return == SMB_QUERY_FILE_UNIX_BASIC) {
SSVAL(pdata,4,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 { } else {
SSVAL(pdata,4,SMB_NO_INFO_LEVEL_RETURNED); SSVAL(pdata,4,SMB_NO_INFO_LEVEL_RETURNED);
SSVAL(pdata,6,0); /* Padding. */
} }
return status; return status;
@ -5067,9 +5069,9 @@ static NTSTATUS smb_posix_open(connection_struct *conn,
info_level_return = SVAL(pdata,12); info_level_return = SVAL(pdata,12);
if (info_level_return == SMB_QUERY_FILE_UNIX_BASIC) { if (info_level_return == SMB_QUERY_FILE_UNIX_BASIC) {
*pdata_return_size = 6; *pdata_return_size = 8 + SMB_FILE_UNIX_BASIC_SIZE;
} else { } else {
*pdata_return_size = 6; *pdata_return_size = 8;
} }
/* Realloc the data size */ /* Realloc the data size */
@ -5095,9 +5097,11 @@ static NTSTATUS smb_posix_open(connection_struct *conn,
SSVAL(pdata,2,fsp->fnum); SSVAL(pdata,2,fsp->fnum);
if (info_level_return == SMB_QUERY_FILE_UNIX_BASIC) { if (info_level_return == SMB_QUERY_FILE_UNIX_BASIC) {
SSVAL(pdata,4,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 { } else {
SSVAL(pdata,4,SMB_NO_INFO_LEVEL_RETURNED); SSVAL(pdata,4,SMB_NO_INFO_LEVEL_RETURNED);
SSVAL(pdata,6,0); /* padding. */
} }
return NT_STATUS_OK; return NT_STATUS_OK;
} }