1
0
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:
Jeremy Allison 2009-02-24 18:03:49 -08:00
parent f68c091107
commit ebe1aa9340

View File

@ -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);