From 149f77b63eed1ca31507ff9833a42d5e4fa3c00e Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 4 Oct 2024 19:05:36 +0200 Subject: [PATCH] smbd: remove seperate flag FSP_POSIX_FLAGS_PATHNAMES Essentially FSP_POSIX_FLAGS_OPEN implies FSP_POSIX_FLAGS_PATHNAMES, so we can just remove FSP_POSIX_FLAGS_PATHNAMES and simplify things. Signed-off-by: Ralph Boehme Reviewed-by: Volker Lendecke --- source3/include/vfs.h | 6 ++---- source3/modules/vfs_acl_common.c | 2 +- source3/smbd/files.c | 2 +- source3/smbd/smb2_reply.c | 2 +- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/source3/include/vfs.h b/source3/include/vfs.h index 1d4f78e3733..522bf6e4fe4 100644 --- a/source3/include/vfs.h +++ b/source3/include/vfs.h @@ -685,11 +685,9 @@ typedef struct files_struct { */ #define FSP_POSIX_FLAGS_OPEN 0x01 -#define FSP_POSIX_FLAGS_PATHNAMES 0x04 #define FSP_POSIX_FLAGS_ALL \ - (FSP_POSIX_FLAGS_OPEN | \ - FSP_POSIX_FLAGS_PATHNAMES) + FSP_POSIX_FLAGS_OPEN struct vuid_cache_entry { struct auth_session_info *session_info; @@ -893,7 +891,7 @@ struct smb_filename { * to keep the numeric values consistent. */ -#define SMB_FILENAME_POSIX_PATH FSP_POSIX_FLAGS_PATHNAMES +#define SMB_FILENAME_POSIX_PATH FSP_POSIX_FLAGS_OPEN enum vfs_translate_direction { vfs_translate_to_unix = 0, diff --git a/source3/modules/vfs_acl_common.c b/source3/modules/vfs_acl_common.c index e04b672cf9a..f38029cf221 100644 --- a/source3/modules/vfs_acl_common.c +++ b/source3/modules/vfs_acl_common.c @@ -1172,7 +1172,7 @@ int unlink_acl_common(struct vfs_handle_struct *handle, int fchmod_acl_module_common(struct vfs_handle_struct *handle, struct files_struct *fsp, mode_t mode) { - if (fsp->posix_flags & FSP_POSIX_FLAGS_PATHNAMES + if (fsp->posix_flags & FSP_POSIX_FLAGS_OPEN || fsp->fsp_name->flags & SMB_FILENAME_POSIX_PATH) { /* Only allow this on POSIX opens. */ return SMB_VFS_NEXT_FCHMOD(handle, fsp, mode); diff --git a/source3/smbd/files.c b/source3/smbd/files.c index 50bf9b58851..dcb6c286d8d 100644 --- a/source3/smbd/files.c +++ b/source3/smbd/files.c @@ -2625,7 +2625,7 @@ static bool fsp_generic_ask_sharemode(struct files_struct *fsp) return false; } - if (fsp->posix_flags & FSP_POSIX_FLAGS_PATHNAMES) { + if (fsp->posix_flags & FSP_POSIX_FLAGS_OPEN) { /* Always use filesystem for UNIX mtime query. */ return false; } diff --git a/source3/smbd/smb2_reply.c b/source3/smbd/smb2_reply.c index 98377547bb3..8c314360b4a 100644 --- a/source3/smbd/smb2_reply.c +++ b/source3/smbd/smb2_reply.c @@ -1470,7 +1470,7 @@ NTSTATUS rename_internals_fsp(connection_struct *conn, * can check them separately. */ - if (fsp->posix_flags & FSP_POSIX_FLAGS_PATHNAMES) { + if (fsp->posix_flags & FSP_POSIX_FLAGS_OPEN) { /* POSIX - no stream component. */ orig_lcomp_path = talloc_strdup(ctx, dst_original_lcomp); -- 2.47.3