mirror of
https://github.com/samba-team/samba.git
synced 2025-03-20 22:50:26 +03:00
Fix bug found against the new Mac client @ Connectathon. Mac clients
don't open with FILE_WRITE_ATTRIBUTES when just doing a write, so updating the write time on close fails as smb_set_file_time() now (correctly) checks for FILE_WRITE_ATTRIBUTES in the access_mask before allowing client time update. This is an internal time update being done on a close, not a handle-based client request.
This commit is contained in:
parent
67e72f5204
commit
7464793c9d
@ -572,8 +572,16 @@ static NTSTATUS update_write_time_on_close(struct files_struct *fsp)
|
||||
}
|
||||
|
||||
ft.mtime = fsp->close_write_time;
|
||||
status = smb_set_file_time(fsp->conn, fsp, fsp->fsp_name, &ft, false);
|
||||
/* We must use NULL for the fsp handle here, as smb_set_file_time()
|
||||
checks the fsp access_mask, which may not include FILE_WRITE_ATTRIBUTES.
|
||||
As this is a close based update, we are not directly changing the
|
||||
file attributes from a client call, but indirectly from a write. */
|
||||
status = smb_set_file_time(fsp->conn, NULL, fsp->fsp_name, &ft, false);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
DEBUG(10,("update_write_time_on_close: smb_set_file_time "
|
||||
"on file %s returned %s\n",
|
||||
fsp_str_dbg(fsp),
|
||||
nt_errstr(status)));
|
||||
return status;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user