struct file_id *file_id);
NTSTATUS smbd_calculate_access_mask(connection_struct *conn,
+ struct files_struct *dirfsp,
const struct smb_filename *smb_fname,
bool use_privs,
uint32_t access_mask,
NTSTATUS status;
status = smbd_calculate_access_mask(conn,
+ conn->cwd_fsp,
smb_fname,
false,
access_mask,
}
NTSTATUS smbd_calculate_access_mask(connection_struct *conn,
+ struct files_struct *dirfsp,
const struct smb_filename *smb_fname,
bool use_privs,
uint32_t access_mask,
uint32_t orig_access_mask = access_mask;
uint32_t rejected_share_access;
+ SMB_ASSERT(dirfsp == conn->cwd_fsp);
+
if (access_mask & SEC_MASK_INVALID) {
DBG_DEBUG("access_mask [%8x] contains invalid bits\n",
access_mask);
}
status = smbd_calculate_access_mask(conn,
+ conn->cwd_fsp,
smb_fname,
false,
access_mask,
file_attributes);
status = smbd_calculate_access_mask(conn,
+ conn->cwd_fsp,
smb_dname,
false,
access_mask,
DATA_BLOB blob = data_blob_const(p, sizeof(p));
status = smbd_calculate_access_mask(smb1req->conn,
+ smb1req->conn->cwd_fsp,
state->result->fsp_name,
false,
SEC_FLAG_MAXIMUM_ALLOWED,