[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha7-105-gda6721e

Jelmer Vernooij jelmer at samba.org
Sun Mar 1 17:15:52 GMT 2009


The branch, master has been updated
       via  da6721e3231fb93b934440c2d92abab834289c82 (commit)
       via  e9bba3e288a204732775427dd4098d7dea2cafd9 (commit)
       via  d3c2de093a35d0168fead27787a3da44a39fbea9 (commit)
      from  9bd0cf8d60b9bbaafa20f33bb1baf222620fb0b0 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit da6721e3231fb93b934440c2d92abab834289c82
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sun Mar 1 18:15:36 2009 +0100

    Move secacl to top-level.

commit e9bba3e288a204732775427dd4098d7dea2cafd9
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sun Mar 1 18:15:15 2009 +0100

    dom_sid.h: Include dependency security.h that provides the dom_sid struct.

commit d3c2de093a35d0168fead27787a3da44a39fbea9
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sun Mar 1 18:05:22 2009 +0100

    Also re-add removed codepoint_t; I'm clearly not having my day today.

-----------------------------------------------------------------------

Summary of changes:
 libcli/security/dom_sid.h                 |    2 +
 {source3/lib => libcli/security}/secacl.c |   34 ++++++++++++++++------------
 source3/Makefile.in                       |    2 +-
 source3/include/rpc_secdes.h              |    1 -
 source3/include/smb.h                     |   16 +++++++++++++
 source4/libcli/security/config.mk         |    3 +-
 6 files changed, 40 insertions(+), 18 deletions(-)
 rename {source3/lib => libcli/security}/secacl.c (79%)


Changeset truncated at 500 lines:

diff --git a/libcli/security/dom_sid.h b/libcli/security/dom_sid.h
index 9d96392..e892535 100644
--- a/libcli/security/dom_sid.h
+++ b/libcli/security/dom_sid.h
@@ -23,6 +23,8 @@
 #ifndef _DOM_SID_H_
 #define _DOM_SID_H_
 
+#include "librpc/gen_ndr/security.h"
+
 int dom_sid_compare(const struct dom_sid *sid1, const struct dom_sid *sid2);
 bool dom_sid_equal(const struct dom_sid *sid1, const struct dom_sid *sid2);
 bool dom_sid_parse(const char *sidstr, struct dom_sid *ret);
diff --git a/source3/lib/secacl.c b/libcli/security/secacl.c
similarity index 79%
rename from source3/lib/secacl.c
rename to libcli/security/secacl.c
index 5e82242..4564077 100644
--- a/source3/lib/secacl.c
+++ b/libcli/security/secacl.c
@@ -21,18 +21,22 @@
  */
 
 #include "includes.h"
+#include "libcli/security/security.h"
+
+#define  SEC_ACL_HEADER_SIZE (2 * sizeof(uint16_t) + sizeof(uint32_t))
 
 /*******************************************************************
  Create a SEC_ACL structure.  
 ********************************************************************/
 
-SEC_ACL *make_sec_acl(TALLOC_CTX *ctx, enum security_acl_revision revision,
-		      int num_aces, SEC_ACE *ace_list)
+struct security_acl *make_sec_acl(TALLOC_CTX *ctx, 
+								  enum security_acl_revision revision,
+								  int num_aces, struct security_ace *ace_list)
 {
-	SEC_ACL *dst;
+	struct security_acl *dst;
 	int i;
 
-	if((dst = TALLOC_ZERO_P(ctx,SEC_ACL)) == NULL)
+	if((dst = talloc_zero(ctx, struct security_acl)) == NULL)
 		return NULL;
 
 	dst->revision = revision;
@@ -46,7 +50,7 @@ SEC_ACL *make_sec_acl(TALLOC_CTX *ctx, enum security_acl_revision revision,
 	   positive number. */
 
 	if ((num_aces) && 
-            ((dst->aces = TALLOC_ARRAY(ctx, SEC_ACE, num_aces)) 
+            ((dst->aces = talloc_array(ctx, struct security_ace, num_aces)) 
              == NULL)) {
 		return NULL;
 	}
@@ -63,7 +67,7 @@ SEC_ACL *make_sec_acl(TALLOC_CTX *ctx, enum security_acl_revision revision,
  Duplicate a SEC_ACL structure.  
 ********************************************************************/
 
-SEC_ACL *dup_sec_acl(TALLOC_CTX *ctx, SEC_ACL *src)
+struct security_acl *dup_sec_acl(TALLOC_CTX *ctx, struct security_acl *src)
 {
 	if(src == NULL)
 		return NULL;
@@ -75,44 +79,44 @@ SEC_ACL *dup_sec_acl(TALLOC_CTX *ctx, SEC_ACL *src)
  Compares two SEC_ACL structures
 ********************************************************************/
 
-bool sec_acl_equal(SEC_ACL *s1, SEC_ACL *s2)
+bool sec_acl_equal(struct security_acl *s1, struct security_acl *s2)
 {
 	unsigned int i, j;
 
 	/* Trivial cases */
 
-	if (!s1 && !s2) return True;
-	if (!s1 || !s2) return False;
+	if (!s1 && !s2) return true;
+	if (!s1 || !s2) return false;
 
 	/* Check top level stuff */
 
 	if (s1->revision != s2->revision) {
 		DEBUG(10, ("sec_acl_equal(): revision differs (%d != %d)\n",
 			   s1->revision, s2->revision));
-		return False;
+		return false;
 	}
 
 	if (s1->num_aces != s2->num_aces) {
 		DEBUG(10, ("sec_acl_equal(): num_aces differs (%d != %d)\n",
 			   s1->revision, s2->revision));
-		return False;
+		return false;
 	}
 
 	/* The ACEs could be in any order so check each ACE in s1 against 
 	   each ACE in s2. */
 
 	for (i = 0; i < s1->num_aces; i++) {
-		bool found = False;
+		bool found = false;
 
 		for (j = 0; j < s2->num_aces; j++) {
 			if (sec_ace_equal(&s1->aces[i], &s2->aces[j])) {
-				found = True;
+				found = true;
 				break;
 			}
 		}
 
-		if (!found) return False;
+		if (!found) return false;
 	}
 
-	return True;
+	return true;
 }
diff --git a/source3/Makefile.in b/source3/Makefile.in
index 30990f4..f127255 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -371,7 +371,7 @@ LIB_OBJ = $(LIBSAMBAUTIL_OBJ) $(UTIL_OBJ) $(CRYPTO_OBJ) \
 	  lib/module.o lib/events.o @LIBTEVENT_OBJ0@ \
 	  lib/ldap_escape.o @CHARSET_STATIC@ \
 	  lib/secdesc.o lib/util_seaccess.o ../libcli/security/secace.o \
-	  lib/secacl.o \
+	  ../libcli/security/secacl.o \
 	  libads/krb5_errs.o lib/system_smbd.o lib/audit.o $(LIBNDR_OBJ) \
 	  lib/file_id.o lib/idmap_cache.o \
 	  ../libcli/security/dom_sid.o
diff --git a/source3/include/rpc_secdes.h b/source3/include/rpc_secdes.h
index 37f7464..c74d621 100644
--- a/source3/include/rpc_secdes.h
+++ b/source3/include/rpc_secdes.h
@@ -77,7 +77,6 @@ typedef struct security_ace SEC_ACE;
 #ifndef _SEC_ACL
 /* SEC_ACL */
 typedef struct security_acl SEC_ACL;
-#define  SEC_ACL_HEADER_SIZE (2 * sizeof(uint16) + sizeof(uint32))
 #define _SEC_ACL
 #endif
 
diff --git a/source3/include/smb.h b/source3/include/smb.h
index 189e370..f020887 100644
--- a/source3/include/smb.h
+++ b/source3/include/smb.h
@@ -167,6 +167,10 @@ typedef uint16 smb_ucs2_t;
 #define COPY_UCS2_CHAR(dest,src) (((unsigned char *)(dest))[0] = ((unsigned char *)(src))[0],\
 				((unsigned char *)(dest))[1] = ((unsigned char *)(src))[1], (dest))
 
+/* Large data type for manipulating uint32 unicode codepoints */
+typedef uint32 codepoint_t;
+#define INVALID_CODEPOINT ((codepoint_t)-1)
+
 /* pipe string names */
 #define PIPE_LANMAN   "\\PIPE\\LANMAN"
 
@@ -1827,6 +1831,18 @@ struct unix_error_map {
 
 #define SAFE_NETBIOS_CHARS ". -_"
 
+/* generic iconv conversion structure */
+typedef struct _smb_iconv_t {
+	size_t (*direct)(void *cd, const char **inbuf, size_t *inbytesleft,
+			 char **outbuf, size_t *outbytesleft);
+	size_t (*pull)(void *cd, const char **inbuf, size_t *inbytesleft,
+		       char **outbuf, size_t *outbytesleft);
+	size_t (*push)(void *cd, const char **inbuf, size_t *inbytesleft,
+		       char **outbuf, size_t *outbytesleft);
+	void *cd_direct, *cd_pull, *cd_push;
+	char *from_name, *to_name;
+} *smb_iconv_t;
+
 /* The maximum length of a trust account password.
    Used when we randomly create it, 15 char passwords
    exceed NT4's max password length */
diff --git a/source4/libcli/security/config.mk b/source4/libcli/security/config.mk
index d99b83c..d6d9ad5 100644
--- a/source4/libcli/security/config.mk
+++ b/source4/libcli/security/config.mk
@@ -4,6 +4,7 @@ PUBLIC_DEPENDENCIES = LIBNDR LIBSECURITY_COMMON
 LIBSECURITY_OBJ_FILES = $(addprefix $(libclisrcdir)/security/, \
 					   security_token.o security_descriptor.o \
 					   access_check.o privilege.o sddl.o) \
-					   ../libcli/security/secace.o
+					   ../libcli/security/secace.o \
+					   ../libcli/security/secacl.o
 
 $(eval $(call proto_header_template,$(libclisrcdir)/security/proto.h,$(LIBSECURITY_OBJ_FILES:.o=.c)))


-- 
Samba Shared Repository


More information about the samba-cvs mailing list