smbd: use fh_[get|set]_private_options()
authorRalph Boehme <slow@samba.org>
Fri, 23 Oct 2020 15:47:46 +0000 (17:47 +0200)
committerRalph Boehme <slow@samba.org>
Wed, 16 Dec 2020 09:08:30 +0000 (09:08 +0000)
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/locking/share_mode_lock.c
source3/printing/printspoolss.c
source3/smbd/durable.c
source3/smbd/open.c
source3/smbd/reply.c
source3/smbd/smb1_utils.c
source3/smbd/smb2_setinfo.c
source3/smbd/trans2.c

index 1bf6d3deb487fa1f7e67944359c8b58bc49b0d6f..64b90db3227f623d130be2bd55db3158918300f6 100644 (file)
@@ -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,
index 10729cf7f52f61eba02787037df1728f37ba0a46..fdd94b46e4e0463684dd5b3502454b11e811eef0 100644 (file)
@@ -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;
 
index c74d9aa27533bfc24dd973cf344efca68e9635dd..12a7a6ae84ae9fcc39acc547518058d3706af4bf 100644 (file)
@@ -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;
index 11f3112ad851c6b4fa0a55b90fd168d52a647bfc..4d29da5659a45912dbb4f7bcac504b67c32b5fbe 100644 (file)
@@ -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,
         */
index ba49a792f3cdae23b2a87a3e6441f389d2e62478..be16b18a35df983ffa0c1571eee1fd75cbf51c5b 100644 (file)
@@ -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),
index d4655ff638f26b5ca1f74fe802df571cc6fa2208..ac42b35564baf5f42692b7a05b8ac033c0c677f0 100644 (file)
@@ -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;
        }
index 6177028158349edb701e286ff8bccec4771190bd..83706b44c925b5eb79a8062dd734a7360ab285b9 100644 (file)
@@ -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",
index e51f2a3f430e0dcb8df8ffd620c9549f58b7fa31..d1f75fe9d2b4f79934dd0d6b0f033a20ef51bc67 100644 (file)
@@ -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",