Author: metze
Date: 2005-08-23 09:45:38 +0000 (Tue, 23 Aug 2005)
New Revision: 9511

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9511

Log:
- fix the memory trees
- add a note about a possible talloc_free()

metze
Modified:
   branches/SAMBA_4_0/source/libcli/security/security_descriptor.c
   branches/SAMBA_4_0/source/libcli/security/security_token.c


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/security/security_descriptor.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/security/security_descriptor.c     
2005-08-23 09:29:32 UTC (rev 9510)
+++ branches/SAMBA_4_0/source/libcli/security/security_descriptor.c     
2005-08-23 09:45:38 UTC (rev 9511)
@@ -317,14 +317,14 @@
        if (sd == NULL) return NULL;
 
        if (owner_sid) {
-               sd->owner_sid = dom_sid_parse_talloc(mem_ctx, owner_sid);
+               sd->owner_sid = dom_sid_parse_talloc(sd, owner_sid);
                if (sd->owner_sid == NULL) {
                        talloc_free(sd);
                        return NULL;
                }
        }
        if (group_sid) {
-               sd->group_sid = dom_sid_parse_talloc(mem_ctx, group_sid);
+               sd->group_sid = dom_sid_parse_talloc(sd, group_sid);
                if (sd->group_sid == NULL) {
                        talloc_free(sd);
                        return NULL;
@@ -353,6 +353,7 @@
                }
                ace->trustee = *sid;
                status = security_descriptor_dacl_add(sd, ace);
+               /* TODO: check: would talloc_free(ace) here be correct? */
                if (!NT_STATUS_IS_OK(status)) {
                        va_end(ap);
                        talloc_free(sd);

Modified: branches/SAMBA_4_0/source/libcli/security/security_token.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/security/security_token.c  2005-08-23 
09:29:32 UTC (rev 9510)
+++ branches/SAMBA_4_0/source/libcli/security/security_token.c  2005-08-23 
09:45:38 UTC (rev 9511)
@@ -78,14 +78,14 @@
         * The only difference between guest and "anonymous"
         * is the addition of Authenticated_Users.
         */
-       ptoken->sids[2] = dom_sid_parse_talloc(mem_ctx, SID_WORLD);
+       ptoken->sids[2] = dom_sid_parse_talloc(ptoken->sids, SID_WORLD);
        NT_STATUS_HAVE_NO_MEMORY(ptoken->sids[2]);
-       ptoken->sids[3] = dom_sid_parse_talloc(mem_ctx, SID_NT_NETWORK);
+       ptoken->sids[3] = dom_sid_parse_talloc(ptoken->sids, SID_NT_NETWORK);
        NT_STATUS_HAVE_NO_MEMORY(ptoken->sids[3]);
        ptoken->num_sids = 4;
 
        if (is_authenticated) {
-               ptoken->sids[4] = dom_sid_parse_talloc(mem_ctx, 
SID_NT_AUTHENTICATED_USERS);
+               ptoken->sids[4] = dom_sid_parse_talloc(ptoken->sids, 
SID_NT_AUTHENTICATED_USERS);
                NT_STATUS_HAVE_NO_MEMORY(ptoken->sids[4]);
                ptoken->num_sids++;
        }
@@ -99,9 +99,9 @@
                                break;
                        }
                }
-               
+
                if (check_sid_idx == ptoken->num_sids) {
-                       ptoken->sids[ptoken->num_sids++] = 
talloc_reference(ptoken, groupSIDs[i]);
+                       ptoken->sids[ptoken->num_sids++] = 
talloc_reference(ptoken->sids, groupSIDs[i]);
                }
        }
 

Reply via email to