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:
committed by
Gerald (Jerry) Carter
parent
ffe646b1e6
commit
778f3a00f0
@ -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
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user