return NT_STATUS_OK;
}
- if (access_mask == DELETE_ACCESS && S_ISLNK(smb_fname->st.st_ex_mode)) {
+ if (access_mask == DELETE_ACCESS &&
+ VALID_STAT(smb_fname->st) &&
+ S_ISLNK(smb_fname->st.st_ex_mode)) {
/* We can always delete a symlink. */
DEBUG(10,("smbd_check_access_rights: not checking ACL "
"on DELETE_ACCESS on symlink %s.\n",
static void find_oplock_types(files_struct *fsp,
int oplock_request,
- struct share_mode_lock *lck,
+ const struct share_mode_lock *lck,
struct share_mode_entry **pp_batch,
struct share_mode_entry **pp_ex_or_batch,
bool *got_level2,
exit_server("push_deferred_open_message_smb failed");
}
add_deferred_open(lck, req->mid, request_time,
- sconn_server_id(req->sconn), state->id);
+ messaging_server_id(req->sconn->msg_ctx), state->id);
}
/* Remove the deferred open entry under lock. */
remove_deferred_open_entry(
state->id, req->mid,
- sconn_server_id(req->sconn));
+ messaging_server_id(req->sconn->msg_ctx));
/* Ensure we don't reprocess this message. */
remove_deferred_open_message_smb(req->sconn, req->mid);
* records. */
if (req != NULL) {
del_deferred_open_entry(lck, req->mid,
- sconn_server_id(req->sconn));
+ messaging_server_id(req->sconn->msg_ctx));
}
TALLOC_FREE(lck);
return NT_STATUS_ACCESS_DENIED;
}
- status = check_name(conn, smb_dname->base_name);
- if (!NT_STATUS_IS_OK(status)) {
- return status;
- }
-
if (!parent_dirname(talloc_tos(), smb_dname->base_name, &parent_dir,
NULL)) {
return NT_STATUS_NO_MEMORY;