[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