svn commit: samba r3358 - in branches/SAMBA_4_0/source: libcli/util librpc/ndr

abartlet at samba.org abartlet at samba.org
Fri Oct 29 08:31:28 GMT 2004


Author: abartlet
Date: 2004-10-29 08:31:27 +0000 (Fri, 29 Oct 2004)
New Revision: 3358

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

Log:
Try to put all the basic struct dom_sid manipulation functions in one
place.  (I always have trouble finding one half or the other).

Andrew Bartlett

Modified:
   branches/SAMBA_4_0/source/libcli/util/dom_sid.c
   branches/SAMBA_4_0/source/librpc/ndr/ndr_sec.c


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/util/dom_sid.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/util/dom_sid.c	2004-10-29 07:29:26 UTC (rev 3357)
+++ branches/SAMBA_4_0/source/libcli/util/dom_sid.c	2004-10-29 08:31:27 UTC (rev 3358)
@@ -23,6 +23,39 @@
 #include "includes.h"
 
 /*
+  convert a dom_sid to a string
+*/
+char *dom_sid_string(TALLOC_CTX *mem_ctx, const struct dom_sid *sid)
+{
+	int i, ofs, maxlen;
+	uint32_t ia;
+	char *ret;
+	
+	if (!sid) {
+		return talloc_strdup(mem_ctx, "(NULL SID)");
+	}
+
+	maxlen = sid->num_auths * 11 + 25;
+	ret = talloc(mem_ctx, maxlen);
+	if (!ret) return talloc_strdup(mem_ctx, "(SID ERR)");
+
+	ia = (sid->id_auth[5]) +
+		(sid->id_auth[4] << 8 ) +
+		(sid->id_auth[3] << 16) +
+		(sid->id_auth[2] << 24);
+
+	ofs = snprintf(ret, maxlen, "S-%u-%lu", 
+		       (uint_t)sid->sid_rev_num, (unsigned long)ia);
+
+	for (i = 0; i < sid->num_auths; i++) {
+		ofs += snprintf(ret + ofs, maxlen - ofs, "-%lu", (unsigned long)sid->sub_auths[i]);
+	}
+	
+	return ret;
+}
+
+
+/*
   convert a string to a dom_sid, returning a talloc'd dom_sid
 */
 struct dom_sid *dom_sid_parse_talloc(TALLOC_CTX *mem_ctx, const char *sidstr)
@@ -121,3 +154,27 @@
 	return ret;
 }
 
+/*
+  add a rid to a domain dom_sid to make a full dom_sid
+*/
+struct dom_sid *dom_sid_add_rid(TALLOC_CTX *mem_ctx, 
+				const struct dom_sid *domain_sid, 
+				uint32_t rid)
+{
+	struct dom_sid *sid;
+
+	sid = talloc_p(mem_ctx, struct dom_sid);
+	if (!sid) return NULL;
+
+	*sid = *domain_sid;
+	/*TODO: use realloc! */
+	sid->sub_auths = talloc_array_p(mem_ctx, uint32_t, sid->num_auths+1);
+	if (!sid->sub_auths) {
+		return NULL;
+	}
+	memcpy(sid->sub_auths, domain_sid->sub_auths, sid->num_auths*sizeof(uint32_t));
+	sid->sub_auths[sid->num_auths] = rid;
+	sid->num_auths++;
+	return sid;
+}
+

Modified: branches/SAMBA_4_0/source/librpc/ndr/ndr_sec.c
===================================================================
--- branches/SAMBA_4_0/source/librpc/ndr/ndr_sec.c	2004-10-29 07:29:26 UTC (rev 3357)
+++ branches/SAMBA_4_0/source/librpc/ndr/ndr_sec.c	2004-10-29 08:31:27 UTC (rev 3358)
@@ -51,39 +51,6 @@
 
 
 /*
-  convert a dom_sid to a string
-*/
-char *dom_sid_string(TALLOC_CTX *mem_ctx, const struct dom_sid *sid)
-{
-	int i, ofs, maxlen;
-	uint32_t ia;
-	char *ret;
-	
-	if (!sid) {
-		return talloc_strdup(mem_ctx, "(NULL SID)");
-	}
-
-	maxlen = sid->num_auths * 11 + 25;
-	ret = talloc(mem_ctx, maxlen);
-	if (!ret) return talloc_strdup(mem_ctx, "(SID ERR)");
-
-	ia = (sid->id_auth[5]) +
-		(sid->id_auth[4] << 8 ) +
-		(sid->id_auth[3] << 16) +
-		(sid->id_auth[2] << 24);
-
-	ofs = snprintf(ret, maxlen, "S-%u-%lu", 
-		       (uint_t)sid->sid_rev_num, (unsigned long)ia);
-
-	for (i = 0; i < sid->num_auths; i++) {
-		ofs += snprintf(ret + ofs, maxlen - ofs, "-%lu", (unsigned long)sid->sub_auths[i]);
-	}
-	
-	return ret;
-}
-
-
-/*
   print a dom_sid
 */
 void ndr_print_dom_sid(struct ndr_print *ndr, const char *name, struct dom_sid *sid)
@@ -106,30 +73,6 @@
 }
 
 /*
-  add a rid to a domain dom_sid to make a full dom_sid
-*/
-struct dom_sid *dom_sid_add_rid(TALLOC_CTX *mem_ctx, 
-				const struct dom_sid *domain_sid, 
-				uint32_t rid)
-{
-	struct dom_sid *sid;
-
-	sid = talloc_p(mem_ctx, struct dom_sid);
-	if (!sid) return NULL;
-
-	*sid = *domain_sid;
-	/*TODO: use realloc! */
-	sid->sub_auths = talloc_array_p(mem_ctx, uint32_t, sid->num_auths+1);
-	if (!sid->sub_auths) {
-		return NULL;
-	}
-	memcpy(sid->sub_auths, domain_sid->sub_auths, sid->num_auths*sizeof(uint32_t));
-	sid->sub_auths[sid->num_auths] = rid;
-	sid->num_auths++;
-	return sid;
-}
-
-/*
   return the wire size of a security_ace
 */
 size_t ndr_size_security_ace(struct security_ace *ace)



More information about the samba-cvs mailing list