diff options
author | Andrew Tridgell <tridge@samba.org> | 2011-12-01 13:40:49 +1100 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2011-12-01 05:14:49 +0100 |
commit | 3c4af39aa506a25fc6d6753dbe34e4e1c0dd0b43 (patch) | |
tree | 7ac56983f5a5d2d2de177cc21f056270d892334c /source4/ntvfs/posix/pvfs_mkdir.c | |
parent | d1274f7f6236b47a1c6aa1737b054ed521d31b67 (diff) | |
download | samba-3c4af39aa506a25fc6d6753dbe34e4e1c0dd0b43.tar.gz samba-3c4af39aa506a25fc6d6753dbe34e4e1c0dd0b43.tar.bz2 samba-3c4af39aa506a25fc6d6753dbe34e4e1c0dd0b43.zip |
s4-ntvfs: added allow_override check based on use of NT ACL
This disables the posix permission override if the calculated
permissions did not come from a NT ACL.
Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Thu Dec 1 05:14:49 CET 2011 on sn-devel-104
Diffstat (limited to 'source4/ntvfs/posix/pvfs_mkdir.c')
-rw-r--r-- | source4/ntvfs/posix/pvfs_mkdir.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/source4/ntvfs/posix/pvfs_mkdir.c b/source4/ntvfs/posix/pvfs_mkdir.c index 10de1d6d5c..2cf43ab1e1 100644 --- a/source4/ntvfs/posix/pvfs_mkdir.c +++ b/source4/ntvfs/posix/pvfs_mkdir.c @@ -51,7 +51,7 @@ static NTSTATUS pvfs_t2mkdir(struct pvfs_state *pvfs, mode = pvfs_fileperms(pvfs, FILE_ATTRIBUTE_DIRECTORY); - if (pvfs_sys_mkdir(pvfs, name->full_name, mode) == -1) { + if (pvfs_sys_mkdir(pvfs, name->full_name, mode, name->allow_override) == -1) { return pvfs_map_errno(pvfs, errno); } @@ -69,7 +69,7 @@ static NTSTATUS pvfs_t2mkdir(struct pvfs_state *pvfs, /* setup an inherited acl from the parent */ status = pvfs_acl_inherit(pvfs, req, name, -1); if (!NT_STATUS_IS_OK(status)) { - pvfs_sys_rmdir(pvfs, name->full_name); + pvfs_sys_rmdir(pvfs, name->full_name, name->allow_override); return status; } @@ -78,7 +78,7 @@ static NTSTATUS pvfs_t2mkdir(struct pvfs_state *pvfs, md->t2mkdir.in.num_eas, md->t2mkdir.in.eas); if (!NT_STATUS_IS_OK(status)) { - pvfs_sys_rmdir(pvfs, name->full_name); + pvfs_sys_rmdir(pvfs, name->full_name, name->allow_override); return status; } @@ -127,7 +127,7 @@ NTSTATUS pvfs_mkdir(struct ntvfs_module_context *ntvfs, mode = pvfs_fileperms(pvfs, FILE_ATTRIBUTE_DIRECTORY); - if (pvfs_sys_mkdir(pvfs, name->full_name, mode) == -1) { + if (pvfs_sys_mkdir(pvfs, name->full_name, mode, name->allow_override) == -1) { return pvfs_map_errno(pvfs, errno); } @@ -136,7 +136,7 @@ NTSTATUS pvfs_mkdir(struct ntvfs_module_context *ntvfs, /* setup an inherited acl from the parent */ status = pvfs_acl_inherit(pvfs, req, name, -1); if (!NT_STATUS_IS_OK(status)) { - pvfs_sys_rmdir(pvfs, name->full_name); + pvfs_sys_rmdir(pvfs, name->full_name, name->allow_override); return status; } @@ -179,7 +179,7 @@ NTSTATUS pvfs_rmdir(struct ntvfs_module_context *ntvfs, return status; } - if (pvfs_sys_rmdir(pvfs, name->full_name) == -1) { + if (pvfs_sys_rmdir(pvfs, name->full_name, name->allow_override) == -1) { /* some olders systems don't return ENOTEMPTY to rmdir() */ if (errno == EEXIST) { return NT_STATUS_DIRECTORY_NOT_EMPTY; |