]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
smbd: pass private_flags to open_directory()
authorRalph Boehme <slow@samba.org>
Wed, 1 Oct 2025 08:33:47 +0000 (10:33 +0200)
committerRalph Boehme <slow@samba.org>
Fri, 17 Jul 2026 10:18:36 +0000 (10:18 +0000)
For now selectively filter NTCREATEX_FLAG_PERSISTENT_OPEN.

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
source3/smbd/open.c

index 8ba54553aad1ca81fd91c84744e2e01e9b182c5d..043a5b18d404d19be868a68df4f81697a9b8c01e 100644 (file)
@@ -5096,6 +5096,7 @@ static NTSTATUS open_directory(connection_struct *conn,
                               struct smb_filename *smb_fname_atname,
                               uint32_t oplock_request,
                               const struct smb2_lease *lease,
+                              uint32_t private_flags,
                               struct security_descriptor *sd,
                               int *pinfo,
                               struct files_struct *fsp)
@@ -5306,7 +5307,11 @@ static NTSTATUS open_directory(connection_struct *conn,
        fsp->fsp_flags.can_read = false;
        fsp->fsp_flags.can_write = false;
 
-       fsp_apply_private_ntcreatex_flags(fsp, 0);
+       /* FIXME: what about NTCREATEX_FLAG_STREAM_BASEOPEN ? */
+       fsp_apply_private_ntcreatex_flags(
+               fsp,
+               private_flags & NTCREATEX_FLAG_PERSISTENT_OPEN);
+
        /*
         * According to Samba4, SEC_FILE_READ_ATTRIBUTE is always granted,
         */
@@ -6736,6 +6741,7 @@ static NTSTATUS create_file_unixpath(connection_struct *conn,
                                        smb_fname_atname,
                                        oplock_request,
                                        lease,
+                                       private_flags,
                                        sd,
                                        &info,
                                        fsp);
@@ -6794,6 +6800,7 @@ static NTSTATUS create_file_unixpath(connection_struct *conn,
                                                smb_fname_atname,
                                                oplock_request,
                                                lease,
+                                               private_flags,
                                                sd,
                                                &info,
                                                fsp);