From: Volker Lendecke Date: Thu, 8 May 2025 13:11:17 +0000 (+0200) Subject: smbd: Simplify synthetic_smb_fname_split() X-Git-Tag: tevent-0.17.0~217 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ea4dcbdc26b2eae0c8f0c5ccdaa48e10762c13ec;p=thirdparty%2Fsamba.git smbd: Simplify synthetic_smb_fname_split() Remove the "posix_path" parameter, all callers just passed in "false". Signed-off-by: Volker Lendecke Reviewed-by: Stefan Metzmacher Autobuild-User(master): Stefan Metzmacher Autobuild-Date(master): Fri May 9 11:02:41 UTC 2025 on atb-devel-224 --- diff --git a/source3/include/proto.h b/source3/include/proto.h index e8dfb533b44..da0d0cb7dfe 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -711,8 +711,7 @@ struct smb_filename *full_path_from_dirfsp_atname( const struct files_struct *dirfsp, const struct smb_filename *atname); struct smb_filename *synthetic_smb_fname_split(TALLOC_CTX *ctx, - const char *fname, - bool posix_path); + const char *fname); 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); diff --git a/source3/lib/filename_util.c b/source3/lib/filename_util.c index 3f8e9033ba5..0108ae6e6a0 100644 --- a/source3/lib/filename_util.c +++ b/source3/lib/filename_util.c @@ -94,24 +94,13 @@ struct smb_filename *cp_smb_filename_nostream(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, - bool posix_path) + const char *fname) { char *stream_name = NULL; char *base_name = NULL; struct smb_filename *ret; bool ok; - if (posix_path) { - /* No stream name looked for. */ - return synthetic_smb_fname(ctx, - fname, - NULL, - NULL, - 0, - SMB_FILENAME_POSIX_PATH); - } - ok = split_stream_filename(ctx, fname, &base_name, diff --git a/source3/smbd/filename.c b/source3/smbd/filename.c index dee3e2164d5..e4234178c0d 100644 --- a/source3/smbd/filename.c +++ b/source3/smbd/filename.c @@ -707,9 +707,7 @@ filename_convert_dirfsp_nosymlink(TALLOC_CTX *mem_ctx, 0, SMB_FILENAME_POSIX_PATH); } else { - smb_fname = synthetic_smb_fname_split(mem_ctx, - name_in, - false); + smb_fname = synthetic_smb_fname_split(mem_ctx, name_in); } if (smb_fname == NULL) { return NT_STATUS_NO_MEMORY; diff --git a/source3/smbd/pysmbd.c b/source3/smbd/pysmbd.c index 2f078835188..fe439dfe2c2 100644 --- a/source3/smbd/pysmbd.c +++ b/source3/smbd/pysmbd.c @@ -166,7 +166,7 @@ static int set_sys_acl_conn(const char *fname, NTSTATUS status; smb_fname = synthetic_smb_fname_split( - frame, canonicalize_path(talloc_tos(), conn, fname), false); + frame, canonicalize_path(talloc_tos(), conn, fname)); if (smb_fname == NULL) { TALLOC_FREE(frame); return -1; @@ -218,7 +218,7 @@ static NTSTATUS init_files_struct(TALLOC_CTX *mem_ctx, fsp->conn = conn; smb_fname = synthetic_smb_fname_split( - fsp, canonicalize_path(talloc_tos(), conn, fname), false); + fsp, canonicalize_path(talloc_tos(), conn, fname)); if (smb_fname == NULL) { return NT_STATUS_NO_MEMORY; } @@ -333,7 +333,7 @@ static NTSTATUS get_nt_acl_conn(TALLOC_CTX *mem_ctx, struct smb_filename *smb_fname = NULL; smb_fname = synthetic_smb_fname_split( - frame, canonicalize_path(talloc_tos(), conn, fname), false); + frame, canonicalize_path(talloc_tos(), conn, fname)); if (smb_fname == NULL) { TALLOC_FREE(frame); @@ -727,7 +727,7 @@ static PyObject *py_smbd_unlink(PyObject *self, PyObject *args, PyObject *kwargs } smb_fname = synthetic_smb_fname_split( - frame, canonicalize_path(talloc_tos(), conn, fname), false); + frame, canonicalize_path(talloc_tos(), conn, fname)); if (smb_fname == NULL) { TALLOC_FREE(frame); return PyErr_NoMemory(); @@ -1069,7 +1069,7 @@ static PyObject *py_smbd_get_sys_acl(PyObject *self, PyObject *args, PyObject *k } smb_fname = synthetic_smb_fname_split( - frame, canonicalize_path(talloc_tos(), conn, fname), false); + frame, canonicalize_path(talloc_tos(), conn, fname)); if (smb_fname == NULL) { TALLOC_FREE(frame); return NULL; diff --git a/source3/torture/cmd_vfs.c b/source3/torture/cmd_vfs.c index ecf7c2bb3a7..4ae1e4e1931 100644 --- a/source3/torture/cmd_vfs.c +++ b/source3/torture/cmd_vfs.c @@ -401,7 +401,7 @@ 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], false); + smb_fname = synthetic_smb_fname_split(NULL, argv[1]); if (smb_fname == NULL) { goto nomem; } @@ -514,9 +514,7 @@ static NTSTATUS cmd_pathfunc(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int arg } else if (strcmp("unlink", argv[0]) == 0 ) { TALLOC_FREE(smb_fname); /* unlink can be a stream:name */ - smb_fname = synthetic_smb_fname_split(talloc_tos(), - argv[1], - false); + smb_fname = synthetic_smb_fname_split(talloc_tos(), argv[1]); if (smb_fname == NULL) { return NT_STATUS_NO_MEMORY; } @@ -680,12 +678,12 @@ 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], false); + smb_fname_src = synthetic_smb_fname_split(mem_ctx, argv[1]); if (smb_fname_src == NULL) { return NT_STATUS_NO_MEMORY; } - smb_fname_dst = synthetic_smb_fname_split(mem_ctx, argv[2], false); + smb_fname_dst = synthetic_smb_fname_split(mem_ctx, argv[2]); if (smb_fname_dst == NULL) { TALLOC_FREE(smb_fname_src); return NT_STATUS_NO_MEMORY; @@ -745,7 +743,7 @@ 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], false); + smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1]); if (smb_fname == NULL) { return NT_STATUS_NO_MEMORY; } @@ -884,7 +882,7 @@ 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], false); + smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1]); if (smb_fname == NULL) { return NT_STATUS_NO_MEMORY; } @@ -949,7 +947,7 @@ static NTSTATUS cmd_chmod(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int argc, mode = atoi(argv[2]); - smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1], false); + smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1]); if (smb_fname == NULL) { return NT_STATUS_NO_MEMORY; } @@ -1212,7 +1210,7 @@ static NTSTATUS cmd_symlink(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int argc return NT_STATUS_OK; } - new_smb_fname = synthetic_smb_fname_split(mem_ctx, argv[2], false); + new_smb_fname = synthetic_smb_fname_split(mem_ctx, argv[2]); if (new_smb_fname == NULL) { return NT_STATUS_NO_MEMORY; } @@ -1257,7 +1255,7 @@ static NTSTATUS cmd_readlink(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int arg return NT_STATUS_OK; } - smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1], false); + smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1]); if (smb_fname == NULL) { return NT_STATUS_NO_MEMORY; } @@ -1289,11 +1287,11 @@ static NTSTATUS cmd_link(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int argc, c return NT_STATUS_OK; } - old_smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1], false); + old_smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1]); if (old_smb_fname == NULL) { return NT_STATUS_NO_MEMORY; } - new_smb_fname = synthetic_smb_fname_split(mem_ctx, argv[2], false); + new_smb_fname = synthetic_smb_fname_split(mem_ctx, argv[2]); if (new_smb_fname == NULL) { return NT_STATUS_NO_MEMORY; } @@ -1341,7 +1339,7 @@ static NTSTATUS cmd_mknod(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int argc, } dev = (SMB_DEV_T)dev_val; - smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1], false); + smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1]); if (smb_fname == NULL) { return NT_STATUS_NO_MEMORY; } @@ -1370,7 +1368,7 @@ static NTSTATUS cmd_realpath(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int arg return NT_STATUS_OK; } - smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1], false); + smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1]); if (smb_fname == NULL) { return NT_STATUS_NO_MEMORY; } @@ -1399,7 +1397,7 @@ static NTSTATUS cmd_getxattr(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, buf = NULL; - smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1], false); + smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1]); if (smb_fname == NULL) { return NT_STATUS_NO_MEMORY; } @@ -1455,7 +1453,7 @@ static NTSTATUS cmd_listxattr(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, buf = NULL; - smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1], false); + smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1]); if (smb_fname == NULL) { return NT_STATUS_NO_MEMORY; } @@ -1524,7 +1522,7 @@ static NTSTATUS cmd_fsetxattr(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, flags = atoi(argv[4]); } - smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1], false); + smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1]); if (smb_fname == NULL) { return NT_STATUS_NO_MEMORY; } @@ -1564,7 +1562,7 @@ static NTSTATUS cmd_removexattr(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, return NT_STATUS_OK; } - smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1], false); + smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1]); if (smb_fname == NULL) { return NT_STATUS_NO_MEMORY; } @@ -1742,7 +1740,7 @@ 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], false); + smb_fname = synthetic_smb_fname_split(NULL, argv[1]); if (smb_fname == NULL) { TALLOC_FREE(fsp); return NT_STATUS_NO_MEMORY; @@ -1883,7 +1881,7 @@ static NTSTATUS cmd_sys_acl_get_file(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, return NT_STATUS_OK; } - smb_fname = synthetic_smb_fname_split(talloc_tos(), argv[1], false); + smb_fname = synthetic_smb_fname_split(talloc_tos(), argv[1]); if (smb_fname == NULL) { return NT_STATUS_NO_MEMORY; } @@ -1936,7 +1934,7 @@ static NTSTATUS cmd_sys_acl_blob_get_file(struct vfs_state *vfs, return NT_STATUS_OK; } - smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1], false); + smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1]); if (smb_fname == NULL) { return NT_STATUS_NO_MEMORY; } @@ -2032,7 +2030,7 @@ static NTSTATUS cmd_sys_acl_delete_def_file(struct vfs_state *vfs, TALLOC_CTX *m return NT_STATUS_OK; } - smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1], false); + smb_fname = synthetic_smb_fname_split(mem_ctx, argv[1]); if (smb_fname == NULL) { return NT_STATUS_NO_MEMORY; }