Fix bug 7716 - acl_xattr and acl_tdb modules don't store unmodified copies of securit...
commitb0d0af837a7e0b444b496ab5d25d3152aa3dbe80
authorJeremy Allison <jra@samba.org>
Thu, 7 Oct 2010 23:56:36 +0000 (7 16:56 -0700)
committerJeremy Allison <jra@samba.org>
Fri, 8 Oct 2010 01:35:06 +0000 (7 18:35 -0700)
treebe44fd4327cdf9ff59cb02ce71bf9fcb5646e3fc
parent27191b4ea1a35663a2d93f8076be59a78fab4948
Fix bug 7716 - acl_xattr and acl_tdb modules don't store unmodified copies of security descriptors.

As pointed out by an OEM, the code within smbd/posix_acl.c, even though passed
a const pointer to a security descriptor, still modifies the ACE entries within
it (which are not const pointers).

This means ACLs stored in the extended attribute by the acl_xattr module have
already been modified by the POSIX acl layer, and are not the original intent
of storing the "unmodified" ACL from the client.

Use dup_sec_desc to make a copy of the incoming ACL on talloc_tos() - that
is what is then modified inside smbd/posix_acl.c, leaving the original ACL
to be correctly stored in the xattr.

Jeremy.

Autobuild-User: Jeremy Allison <jra@samba.org>
Autobuild-Date: Fri Oct  8 00:37:53 UTC 2010 on sn-devel-104
(cherry picked from commit cd04af78d51121cc16453fcd52e0d4c3516bc3c5)
source3/smbd/posix_acls.c