svn commit: samba r9511 - in branches/SAMBA_4_0/source/libcli/security: .

metze at samba.org metze at samba.org
Tue Aug 23 09:45:38 GMT 2005


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]);
 		}
 	}
 



More information about the samba-cvs mailing list