The Samba-Bugzilla – Attachment 6377 Details for
Bug 7987
ACL can get lost when files are being renamed
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
git-am patch for 3.5.next
0001-Fix-bug-7987-ACL-can-get-lost-when-files-are-being-r.patch (text/plain), 3.45 KB, created by
Jeremy Allison
on 2011-04-06 00:27:26 UTC
(
hide
)
Description:
git-am patch for 3.5.next
Filename:
MIME Type:
Creator:
Jeremy Allison
Created:
2011-04-06 00:27:26 UTC
Size:
3.45 KB
patch
obsolete
>From a62a42846317b19e756f37909fd3c660f5f9046a Mon Sep 17 00:00:00 2001 >From: Jeremy Allison <jra@samba.org> >Date: Tue, 5 Apr 2011 17:26:00 -0700 >Subject: [PATCH] Fix bug #7987 - ACL can get lost when files are being renamed. > >There is no reason for smbd with Windows ACLs to use chmod >or fchmod unless it's a file opened with UNIX extensions or >with posix pathnames. >--- > source3/modules/vfs_acl_common.c | 40 ++++++++++++++++++++++++++++++++++++++ > source3/modules/vfs_acl_tdb.c | 6 ++++- > source3/modules/vfs_acl_xattr.c | 4 +++ > 3 files changed, 49 insertions(+), 1 deletions(-) > >diff --git a/source3/modules/vfs_acl_common.c b/source3/modules/vfs_acl_common.c >index f1884f5..d230609 100644 >--- a/source3/modules/vfs_acl_common.c >+++ b/source3/modules/vfs_acl_common.c >@@ -1012,3 +1012,43 @@ static int unlink_acl_common(struct vfs_handle_struct *handle, > smb_fname->base_name, > false); > } >+ >+static int chmod_acl_module_common(struct vfs_handle_struct *handle, >+ const char *path, mode_t mode) >+{ >+ if (lp_posix_pathnames()) { >+ /* Only allow this on POSIX pathnames. */ >+ return SMB_VFS_NEXT_CHMOD(handle, path, mode); >+ } >+ return 0; >+} >+ >+static int fchmod_acl_module_common(struct vfs_handle_struct *handle, >+ struct files_struct *fsp, mode_t mode) >+{ >+ if (fsp->posix_open) { >+ /* Only allow this on POSIX opens. */ >+ return SMB_VFS_NEXT_FCHMOD(handle, fsp, mode); >+ } >+ return 0; >+} >+ >+static int chmod_acl_acl_module_common(struct vfs_handle_struct *handle, >+ const char *name, mode_t mode) >+{ >+ if (lp_posix_pathnames()) { >+ /* Only allow this on POSIX pathnames. */ >+ return SMB_VFS_NEXT_CHMOD_ACL(handle, name, mode); >+ } >+ return 0; >+} >+ >+static int fchmod_acl_acl_module_common(struct vfs_handle_struct *handle, >+ struct files_struct *fsp, mode_t mode) >+{ >+ if (fsp->posix_open) { >+ /* Only allow this on POSIX opens. */ >+ return SMB_VFS_NEXT_FCHMOD_ACL(handle, fsp, mode); >+ } >+ return 0; >+} >diff --git a/source3/modules/vfs_acl_tdb.c b/source3/modules/vfs_acl_tdb.c >index b26208c..4a05b9c 100644 >--- a/source3/modules/vfs_acl_tdb.c >+++ b/source3/modules/vfs_acl_tdb.c >@@ -397,13 +397,17 @@ static struct vfs_fn_pointers vfs_acl_tdb_fns = { > .disconnect = disconnect_acl_tdb, > .opendir = opendir_acl_common, > .mkdir = mkdir_acl_common, >+ .rmdir = rmdir_acl_tdb, > .open = open_acl_common, > .create_file = create_file_acl_common, > .unlink = unlink_acl_tdb, >- .rmdir = rmdir_acl_tdb, >+ .chmod = chmod_acl_module_common, >+ .fchmod = fchmod_acl_module_common, > .fget_nt_acl = fget_nt_acl_common, > .get_nt_acl = get_nt_acl_common, > .fset_nt_acl = fset_nt_acl_common, >+ .chmod_acl = chmod_acl_acl_module_common, >+ .fchmod_acl = fchmod_acl_acl_module_common, > .sys_acl_set_file = sys_acl_set_file_tdb, > .sys_acl_set_fd = sys_acl_set_fd_tdb > }; >diff --git a/source3/modules/vfs_acl_xattr.c b/source3/modules/vfs_acl_xattr.c >index 46e282d..5937fac 100644 >--- a/source3/modules/vfs_acl_xattr.c >+++ b/source3/modules/vfs_acl_xattr.c >@@ -207,9 +207,13 @@ static struct vfs_fn_pointers vfs_acl_xattr_fns = { > .open = open_acl_common, > .create_file = create_file_acl_common, > .unlink = unlink_acl_common, >+ .chmod = chmod_acl_module_common, >+ .fchmod = fchmod_acl_module_common, > .fget_nt_acl = fget_nt_acl_common, > .get_nt_acl = get_nt_acl_common, > .fset_nt_acl = fset_nt_acl_common, >+ .chmod_acl = chmod_acl_acl_module_common, >+ .fchmod_acl = fchmod_acl_acl_module_common, > .sys_acl_set_file = sys_acl_set_file_xattr, > .sys_acl_set_fd = sys_acl_set_fd_xattr > }; >-- >1.7.1 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
vl
:
review+
Actions:
View
Attachments on
bug 7987
:
6278
| 6377