mirror of
https://github.com/samba-team/samba.git
synced 2024-12-27 03:21:53 +03:00
Allow set attributes on a stream fnum to be redirected to the base filename.
Fixes the new RAW-STREAMS torture test. Jeremy.
This commit is contained in:
parent
f68c091107
commit
ebe1aa9340
@ -4972,6 +4972,7 @@ NTSTATUS smb_set_file_time(connection_struct *conn,
|
||||
****************************************************************************/
|
||||
|
||||
static NTSTATUS smb_set_file_dosmode(connection_struct *conn,
|
||||
files_struct *fsp,
|
||||
const char *fname,
|
||||
SMB_STRUCT_STAT *psbuf,
|
||||
uint32 dosmode)
|
||||
@ -4980,6 +4981,14 @@ static NTSTATUS smb_set_file_dosmode(connection_struct *conn,
|
||||
return NT_STATUS_OBJECT_NAME_NOT_FOUND;
|
||||
}
|
||||
|
||||
if (fsp) {
|
||||
if (fsp->base_fsp) {
|
||||
fname = fsp->base_fsp->fsp_name;
|
||||
} else {
|
||||
fname = fsp->fsp_name;
|
||||
}
|
||||
}
|
||||
|
||||
if (dosmode) {
|
||||
if (S_ISDIR(psbuf->st_mode)) {
|
||||
dosmode |= aDIR;
|
||||
@ -5723,12 +5732,11 @@ static NTSTATUS smb_set_file_basic_info(connection_struct *conn,
|
||||
|
||||
/* Set the attributes */
|
||||
dosmode = IVAL(pdata,32);
|
||||
status = smb_set_file_dosmode(conn, fname, psbuf, dosmode);
|
||||
status = smb_set_file_dosmode(conn, fsp, fname, psbuf, dosmode);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
/* access time */
|
||||
ft.atime = interpret_long_date(pdata+8);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user