From: Ralph Boehme Date: Fri, 23 Oct 2020 15:47:46 +0000 (+0200) Subject: smbd: use fh_[get|set]_private_options() X-Git-Tag: samba-4.14.0rc1~408 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=da786ccd1d2bf834b75f9a9c067f6ae4911dd5a2;p=thirdparty%2Fsamba.git smbd: use fh_[get|set]_private_options() Signed-off-by: Ralph Boehme Reviewed-by: Jeremy Allison --- diff --git a/source3/locking/share_mode_lock.c b/source3/locking/share_mode_lock.c index 1bf6d3deb48..64b90db3227 100644 --- a/source3/locking/share_mode_lock.c +++ b/source3/locking/share_mode_lock.c @@ -1803,7 +1803,7 @@ bool set_share_mode(struct share_mode_lock *lck, e = (struct share_mode_entry) { .pid = my_pid, .share_access = share_access, - .private_options = fsp->fh->private_options, + .private_options = fh_get_private_options(fsp->fh), .access_mask = access_mask, .op_mid = mid, .op_type = op_type, diff --git a/source3/printing/printspoolss.c b/source3/printing/printspoolss.c index 10729cf7f52..fdd94b46e4e 100644 --- a/source3/printing/printspoolss.c +++ b/source3/printing/printspoolss.c @@ -318,7 +318,7 @@ void print_spool_end(files_struct *fsp, enum file_close_type close_type) WERROR werr; struct dcerpc_binding_handle *b = NULL; - if (fsp->fh->private_options & + if (fh_get_private_options(fsp->fh) & NTCREATEX_FLAG_DELETE_ON_CLOSE) { int ret; diff --git a/source3/smbd/durable.c b/source3/smbd/durable.c index c74d9aa2753..12a7a6ae84a 100644 --- a/source3/smbd/durable.c +++ b/source3/smbd/durable.c @@ -678,7 +678,7 @@ NTSTATUS vfs_default_durable_reconnect(struct connection_struct *conn, return status; } - fsp->fh->private_options = e.private_options; + fh_set_private_options(fsp->fh, e.private_options); fsp->file_id = file_id; fsp->file_pid = smb1req->smbpid; fsp->vuid = smb1req->vuid; diff --git a/source3/smbd/open.c b/source3/smbd/open.c index 11f3112ad85..4d29da5659a 100644 --- a/source3/smbd/open.c +++ b/source3/smbd/open.c @@ -3621,7 +3621,7 @@ static NTSTATUS open_file_ntcreate(connection_struct *conn, */ fsp->file_id = vfs_file_id_from_sbuf(conn, &smb_fname->st); } - fsp->fh->private_options = private_flags; + fh_set_private_options(fsp->fh, private_flags); fsp->access_mask = open_access_mask; /* We change this to the * requested access_mask after * the open is done. */ @@ -4426,7 +4426,7 @@ static NTSTATUS open_directory(connection_struct *conn, fsp->fsp_flags.can_read = false; fsp->fsp_flags.can_write = false; - fsp->fh->private_options = 0; + fh_set_private_options(fsp->fh, 0); /* * According to Samba4, SEC_FILE_READ_ATTRIBUTE is always granted, */ diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c index ba49a792f3c..be16b18a35d 100644 --- a/source3/smbd/reply.c +++ b/source3/smbd/reply.c @@ -7781,7 +7781,7 @@ NTSTATUS rename_internals_fsp(connection_struct *conn, conn->cwd_fsp, smb_fname_dst); if (ret == 0) { - uint32_t create_options = fsp->fh->private_options; + uint32_t create_options = fh_get_private_options(fsp->fh); DEBUG(3, ("rename_internals_fsp: succeeded doing rename on " "%s -> %s\n", smb_fname_str_dbg(fsp->fsp_name), diff --git a/source3/smbd/smb1_utils.c b/source3/smbd/smb1_utils.c index d4655ff638f..ac42b35564b 100644 --- a/source3/smbd/smb1_utils.c +++ b/source3/smbd/smb1_utils.c @@ -61,13 +61,13 @@ struct files_struct *fcb_or_dos_open( fsp_get_pathref_fd(fsp), fsp->vuid, fsp->file_pid, - fsp->fh->private_options, + fh_get_private_options(fsp->fh), fsp->access_mask); if (fsp_get_pathref_fd(fsp) != -1 && fsp->vuid == req->vuid && fsp->file_pid == req->smbpid && - (fsp->fh->private_options & + (fh_get_private_options(fsp->fh) & (NTCREATEX_FLAG_DENY_DOS | NTCREATEX_FLAG_DENY_FCB)) && (fsp->access_mask & FILE_WRITE_DATA) && @@ -85,7 +85,7 @@ struct files_struct *fcb_or_dos_open( /* quite an insane set of semantics ... */ if (is_executable(smb_fname->base_name) && - (fsp->fh->private_options & NTCREATEX_FLAG_DENY_DOS)) { + (fh_get_private_options(fsp->fh) & NTCREATEX_FLAG_DENY_DOS)) { DBG_DEBUG("file fail due to is_executable.\n"); return NULL; } diff --git a/source3/smbd/smb2_setinfo.c b/source3/smbd/smb2_setinfo.c index 61770281583..83706b44c92 100644 --- a/source3/smbd/smb2_setinfo.c +++ b/source3/smbd/smb2_setinfo.c @@ -450,7 +450,10 @@ static struct tevent_req *smbd_smb2_setinfo_send(TALLOC_CTX *mem_ctx, if ((file_info_level == SMB_SET_FILE_DISPOSITION_INFO) && in_input_buffer.length >= 1 && CVAL(in_input_buffer.data,0)) { - fsp->fh->private_options |= NTCREATEX_FLAG_DELETE_ON_CLOSE; + uint32_t new_private_options = + fh_get_private_options(fsp->fh); + new_private_options |= NTCREATEX_FLAG_DELETE_ON_CLOSE; + fh_set_private_options(fsp->fh, new_private_options); DEBUG(3,("smbd_smb2_setinfo_send: " "Cancelling print job (%s)\n", diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c index e51f2a3f430..d1f75fe9d2b 100644 --- a/source3/smbd/trans2.c +++ b/source3/smbd/trans2.c @@ -9382,7 +9382,12 @@ static void call_trans2setfilepathinfo(connection_struct *conn, * Doing a DELETE_ON_CLOSE should cancel a print job. */ if ((info_level == SMB_SET_FILE_DISPOSITION_INFO) && CVAL(pdata,0)) { - fsp->fh->private_options |= NTCREATEX_FLAG_DELETE_ON_CLOSE; + uint32_t new_private_options = + fh_get_private_options(fsp->fh); + new_private_options |= + NTCREATEX_FLAG_DELETE_ON_CLOSE; + fh_set_private_options(fsp->fh, + new_private_options); DEBUG(3,("call_trans2setfilepathinfo: " "Cancelling print job (%s)\n",