]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3:lib: Move internal lp_posix_pathnames() call out of utility function synthetic_smb...
authorJeremy Allison <jra@samba.org>
Thu, 10 Mar 2016 00:00:47 +0000 (16:00 -0800)
committerJeremy Allison <jra@samba.org>
Thu, 10 Mar 2016 19:55:09 +0000 (20:55 +0100)
Make it a passed in parameter instead.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Uri Simchoni <uri@samba.org>
source3/include/proto.h
source3/lib/filename_util.c
source3/smbd/filename.c
source3/smbd/pysmbd.c
source3/smbd/reply.c
source3/torture/cmd_vfs.c

index 224db9ad13269aadd6e3a80d660c9bd163a775d6..dc8fee9196300f51b047f12aeb7cbed79872a235 100644 (file)
@@ -1141,7 +1141,8 @@ struct smb_filename *synthetic_smb_fname(TALLOC_CTX *mem_ctx,
                                         const char *stream_name,
                                         const SMB_STRUCT_STAT *psbuf);
 struct smb_filename *synthetic_smb_fname_split(TALLOC_CTX *ctx,
-                                              const char *fname);
+                                               const char *fname,
+                                               bool posix_path);
 const char *smb_fname_str_dbg(const struct smb_filename *smb_fname);
 const char *fsp_str_dbg(const struct files_struct *fsp);
 const char *fsp_fnum_dbg(const struct files_struct *fsp);
index 025a943ecf31cc3fc4f47ec131a905709c94162b..6ee91eca247dcf2e1aa922825cdfb921d4d2eb7d 100644 (file)
@@ -73,14 +73,15 @@ struct smb_filename *synthetic_smb_fname(TALLOC_CTX *mem_ctx,
  * There are a few legitimate users of this.
  */
 struct smb_filename *synthetic_smb_fname_split(TALLOC_CTX *ctx,
-                                              const char *fname)
+                                               const char *fname,
+                                               bool posix_path)
 {
        char *stream_name = NULL;
        char *base_name = NULL;
        struct smb_filename *ret;
        bool ok;
 
-       if (lp_posix_pathnames()) {
+       if (posix_path) {
                /* No stream name looked for. */
                return synthetic_smb_fname(ctx, fname, NULL, NULL);
        }
index fc56b245fbf55f6eca651ea3af18042a3bac62b0..dffa71d7b671b22991ef49424ef8b8d037df3654 100644 (file)
@@ -1423,7 +1423,8 @@ static NTSTATUS filename_convert_internal(TALLOC_CTX *ctx,
                ZERO_STRUCT(st);
                st.st_ex_nlink = 1;
                *pp_smb_fname = synthetic_smb_fname_split(ctx,
-                                                         name_in);
+                                       name_in,
+                                       (ucf_flags & UCF_POSIX_PATHNAMES));
                if (*pp_smb_fname == NULL) {
                        return NT_STATUS_NO_MEMORY;
                }
index 41f0e3f0aa08e19a4dc99bc3df1a86a926ff9181..4d95bcff01bd52f952ae077065ae79c84fa4a552 100644 (file)
@@ -124,7 +124,9 @@ static NTSTATUS set_nt_acl_conn(const char *fname,
           so set our umask to 0 */
        saved_umask = umask(0);
 
-       smb_fname = synthetic_smb_fname_split(fsp, fname);
+       smb_fname = synthetic_smb_fname_split(fsp,
+                                       fname,
+                                       lp_posix_pathnames());
        if (smb_fname == NULL) {
                TALLOC_FREE(frame);
                umask(saved_umask);
@@ -446,7 +448,9 @@ static PyObject *py_smbd_unlink(PyObject *self, PyObject *args, PyObject *kwargs
                return NULL;
        }
 
-       smb_fname = synthetic_smb_fname_split(frame, fname);
+       smb_fname = synthetic_smb_fname_split(frame,
+                                       fname,
+                                       lp_posix_pathnames());
        if (smb_fname == NULL) {
                TALLOC_FREE(frame);
                return PyErr_NoMemory();
index 673b735568e3b019c7fe061d278b4f4d06275615..3fb07fb0454f6f77fd4f722504e6891fd55df28b 100644 (file)
@@ -6645,7 +6645,9 @@ NTSTATUS rename_internals_fsp(connection_struct *conn,
                 * component of the destination.
                 */
                smb_fname_orig_lcomp = synthetic_smb_fname_split(
-                       ctx, smb_fname_dst->original_lcomp);
+                       ctx,
+                       smb_fname_dst->original_lcomp,
+                       lp_posix_pathnames());
                if (smb_fname_orig_lcomp == NULL) {
                        status = NT_STATUS_NO_MEMORY;
                        TALLOC_FREE(fname_dst_lcomp_base_mod);
index a06947c1dc41de83758164597df978c508b2f089..7c49ce78db8be99e9bdc186329f80309829fc82a 100644 (file)
@@ -354,7 +354,9 @@ static NTSTATUS cmd_open(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int argc, c
        }
        fsp->conn = vfs->conn;
 
-       smb_fname = synthetic_smb_fname_split(NULL, argv[1]);
+       smb_fname = synthetic_smb_fname_split(NULL,
+                                       argv[1],
+                                       lp_posix_pathnames());
        if (smb_fname == NULL) {
                TALLOC_FREE(fsp);
                return NT_STATUS_NO_MEMORY;
@@ -584,12 +586,16 @@ static NTSTATUS cmd_rename(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int argc,
                return NT_STATUS_OK;
        }
 
-       smb_fname_src = synthetic_smb_fname_split(mem_ctx, argv[1]);
+       smb_fname_src = synthetic_smb_fname_split(mem_ctx,
+                                       argv[1],
+                                       lp_posix_pathnames());
        if (smb_fname_src == NULL) {
                return NT_STATUS_NO_MEMORY;
        }
 
-       smb_fname_dst = synthetic_smb_fname_split(mem_ctx, argv[2]);
+       smb_fname_dst = synthetic_smb_fname_split(mem_ctx,
+                                       argv[2],
+                                       lp_posix_pathnames());
        if (smb_fname_dst == NULL) {
                TALLOC_FREE(smb_fname_src);
                return NT_STATUS_NO_MEMORY;
@@ -644,7 +650,9 @@ static NTSTATUS cmd_stat(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int argc, c
                return NT_STATUS_OK;
        }
 
-       smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1]);
+       smb_fname = synthetic_smb_fname_split(mem_ctx,
+                                       argv[1],
+                                       lp_posix_pathnames());
        if (smb_fname == NULL) {
                return NT_STATUS_NO_MEMORY;
        }
@@ -783,7 +791,9 @@ static NTSTATUS cmd_lstat(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int argc,
                return NT_STATUS_OK;
        }
 
-       smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1]);
+       smb_fname = synthetic_smb_fname_split(mem_ctx,
+                                       argv[1],
+                                       lp_posix_pathnames());
        if (smb_fname == NULL) {
                return NT_STATUS_NO_MEMORY;
        }
@@ -1043,7 +1053,9 @@ static NTSTATUS cmd_utime(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int argc,
        ft.atime = convert_time_t_to_timespec(atoi(argv[2]));
        ft.mtime = convert_time_t_to_timespec(atoi(argv[3]));
 
-       smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1]);
+       smb_fname = synthetic_smb_fname_split(mem_ctx,
+                                       argv[1],
+                                       lp_posix_pathnames());
        if (smb_fname == NULL) {
                return NT_STATUS_NO_MEMORY;
        }
@@ -1530,7 +1542,9 @@ static NTSTATUS cmd_set_nt_acl(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int a
        }
        fsp->conn = vfs->conn;
 
-       smb_fname = synthetic_smb_fname_split(NULL, argv[1]);
+       smb_fname = synthetic_smb_fname_split(NULL,
+                                       argv[1],
+                                       lp_posix_pathnames());
        if (smb_fname == NULL) {
                TALLOC_FREE(fsp);
                return NT_STATUS_NO_MEMORY;