TODO breaks tests libcli/security: fix the CREATOR_OWNER order in calculate_inherited...
authorStefan Metzmacher <metze@samba.org>
Fri, 30 Nov 2012 21:44:58 +0000 (22:44 +0100)
committerStefan Metzmacher <metze@samba.org>
Mon, 18 Feb 2019 10:31:19 +0000 (11:31 +0100)
The inherited object/container specific CREATOR_OWNER ace should be inserted
before the generic CREATOR_OWNER ace.

This also matches the behavior of a Windows (2008R2) DC
for active directory SDs and also matches the logic for filesystem SDs,
see se_create_child_secdesc().

Signed-off-by: Stefan Metzmacher <metze@samba.org>
libcli/security/create_descriptor.c

index ef60d847033fb5aa503298f5e96dd651ff53ac03..c138ae985f40cdf5398607e444f89c71def6b312 100644 (file)
@@ -215,10 +215,10 @@ static struct security_acl *calculate_inherited_from_parent(TALLOC_CTX *mem_ctx,
                                                    return NULL;
                                            }
                                            tmp_acl->aces[tmp_acl->num_aces] = *ace;
-                                           desc_expand_generic(&tmp_acl->aces[tmp_acl->num_aces],
+                                           desc_expand_generic(&tmp_acl->aces[tmp_acl->num_aces-1],
                                                                owner,
                                                                group);
-                                           tmp_acl->aces[tmp_acl->num_aces].flags = SEC_ACE_FLAG_INHERITED_ACE;
+                                           tmp_acl->aces[tmp_acl->num_aces-1].flags = SEC_ACE_FLAG_INHERITED_ACE;
                                            tmp_acl->num_aces++;
                                }
                        }