[SCM] Samba Shared Repository - branch master updated

Volker Lendecke vlendec at samba.org
Mon Aug 24 17:20:02 UTC 2015


The branch, master has been updated
       via  617bc3f winbind: Remove "have_idmap_config" from winbindd_domain
       via  b62c7e2 winbind: Do not look for the domain in wb_gid2sid
       via  2387d03 winbind: Do not look for the domain in wb_uid2sid
       via  8856555 idmap: Remove dom_name from wbint_Gid2Sid
       via  d473047 idmap: Remove dom_name from wbint_Uid2Sid
       via  2f4dad5 idmap: Remove "domname" from idmap_gid_to_sid
       via  0f8c9b8 idmap: Remove "domname" from idmap_uid_to_sid
       via  ac4cc24 idmap: Remove "domname" from idmap_backends_unixid_to_sid
       via  ad626b9 idmap: Use a range search in idmap_backends_unixid_to_sid
       via  ef0c911 idmap: Initialize all idmap domains at startup
       via  d36de86 idmap: Move idmap_init() under the static vars
       via  443dd9b loadparm3: Add lp_wi_scan_global_parametrics()
      from  f504681 uwrap: Bump version to 1.1.1

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


- Log -----------------------------------------------------------------
commit 617bc3fe611266b8d3d0fd47b839d4ac8ad73f8f
Author: Volker Lendecke <vl at samba.org>
Date:   Fri Aug 21 11:25:33 2015 +0200

    winbind: Remove "have_idmap_config" from winbindd_domain
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    Bug: https://bugzilla.samba.org/show_bug.cgi?id=11464
    
    Autobuild-User(master): Volker Lendecke <vl at samba.org>
    Autobuild-Date(master): Mon Aug 24 19:19:31 CEST 2015 on sn-devel-104

commit b62c7e26b4783cdff11e406e4d75bc2e0fba7933
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Aug 19 13:48:17 2015 +0200

    winbind: Do not look for the domain in wb_gid2sid
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    Bug: https://bugzilla.samba.org/show_bug.cgi?id=11464

commit 2387d03b8ae9a471694503677667e623dff8ef88
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Aug 19 13:48:17 2015 +0200

    winbind: Do not look for the domain in wb_uid2sid
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    Bug: https://bugzilla.samba.org/show_bug.cgi?id=11464

commit 8856555af43848830b7c1e47765d26ce59dfa62b
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Aug 19 13:44:02 2015 +0200

    idmap: Remove dom_name from wbint_Gid2Sid
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    Bug: https://bugzilla.samba.org/show_bug.cgi?id=11464

commit d4730474da30c707339e21746c27eed5871cfdfe
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Aug 19 13:44:02 2015 +0200

    idmap: Remove dom_name from wbint_Uid2Sid
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    Bug: https://bugzilla.samba.org/show_bug.cgi?id=11464

commit 2f4dad52c77c7d0aaad2a4ccc0cb7dff0d129612
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Aug 19 13:34:58 2015 +0200

    idmap: Remove "domname" from idmap_gid_to_sid
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    Bug: https://bugzilla.samba.org/show_bug.cgi?id=11464

commit 0f8c9b8d7f9a3ca288e42d857d253137e048d4bc
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Aug 19 13:34:58 2015 +0200

    idmap: Remove "domname" from idmap_uid_to_sid
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    Bug: https://bugzilla.samba.org/show_bug.cgi?id=11464

commit ac4cc243771fc3273872547087679db21c9bb1cb
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Aug 18 17:34:29 2015 +0200

    idmap: Remove "domname" from idmap_backends_unixid_to_sid
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    Bug: https://bugzilla.samba.org/show_bug.cgi?id=11464

commit ad626b9e6b3c200c70b0d840c956f7b6fff20660
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Aug 18 17:30:27 2015 +0200

    idmap: Use a range search in idmap_backends_unixid_to_sid
    
    This obsoletes the domain name in the xid2sid calls
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    Bug: https://bugzilla.samba.org/show_bug.cgi?id=11464

commit ef0c91195533d95ba4fb7947ff5f69c20aa677b8
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Aug 19 17:00:46 2015 +0200

    idmap: Initialize all idmap domains at startup
    
    So far we have initialized idmap domains on demand indexed by name.
    For sid2xid this works okay, because we could do lookupsids before
    and thus get the name. For xid2sid this is more problematic. We
    have to rely on enumtrustdoms to work completely, and we have to
    look at the list of winbind domains in the parent to get the domain
    name. Relying on domain->have_idmap_config is not particularly nice.
    
    This patch re-works initialization of idmap domains by scanning all
    parametric parameters, scanning for :backend configuration settings.
    This way we get a complete list of :range definitions. This means
    we can rely on the idmap domain array to be complete. This in turn
    means we can live without the domain name to find a domain, we can
    do a range search by uid or gid.
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    Bug: https://bugzilla.samba.org/show_bug.cgi?id=11464

commit d36de86639b7782e1e959d61917d8f19fdfc902c
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Aug 18 16:58:02 2015 +0200

    idmap: Move idmap_init() under the static vars
    
    Just moving code, idmap_init will need to reference the variables
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    Bug: https://bugzilla.samba.org/show_bug.cgi?id=11464

commit 443dd9bbbc641ede10a2a3708465f61ea3dfbde3
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Aug 18 13:18:33 2015 +0200

    loadparm3: Add lp_wi_scan_global_parametrics()
    
    This routine takes a regex and goes through all parametric parameters
    in [global], matching the regex. It can easily be extended to also
    look at shares, but right now it will only be used to list all idmap
    config domain names.
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    Bug: https://bugzilla.samba.org/show_bug.cgi?id=11464

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

Summary of changes:
 librpc/idl/winbind.idl                  |   2 -
 source3/include/proto.h                 |   9 ++
 source3/param/loadparm.c                |  73 ++++++++++
 source3/torture/test_idmap_tdb_common.c |   2 +-
 source3/winbindd/idmap.c                | 244 ++++++++++++++++++--------------
 source3/winbindd/idmap_proto.h          |   7 +-
 source3/winbindd/idmap_util.c           |  14 +-
 source3/winbindd/wb_gid2sid.c           |  15 +-
 source3/winbindd/wb_uid2sid.c           |  15 +-
 source3/winbindd/winbindd.h             |   7 -
 source3/winbindd/winbindd_dual_srv.c    |   6 +-
 source3/winbindd/winbindd_util.c        |  33 -----
 12 files changed, 232 insertions(+), 195 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/idl/winbind.idl b/librpc/idl/winbind.idl
index 5b61950..07deb80 100644
--- a/librpc/idl/winbind.idl
+++ b/librpc/idl/winbind.idl
@@ -57,13 +57,11 @@ interface winbind
 	);
 
     NTSTATUS wbint_Uid2Sid(
-	[in,unique,string,charset(UTF8)] char *dom_name,
 	[in] hyper uid,
 	[out] dom_sid *sid
 	);
 
     NTSTATUS wbint_Gid2Sid(
-	[in,unique,string,charset(UTF8)] char *dom_name,
 	[in] hyper gid,
 	[out] dom_sid *sid
 	);
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 0858289..b8f4a67 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -23,6 +23,9 @@
 #ifndef _PROTO_H_
 #define _PROTO_H_
 
+#include <sys/types.h>
+#include <regex.h>
+
 /* The following definitions come from lib/access.c  */
 
 bool client_match(const char *tok, const void *item);
@@ -986,6 +989,12 @@ int lp_smb2_max_credits(void);
 int lp_cups_encrypt(void);
 bool lp_widelinks(int );
 
+int lp_wi_scan_global_parametrics(
+	const char *regex, size_t max_matches,
+	bool (*cb)(const char *string, regmatch_t matches[],
+		   void *private_data),
+	void *private_data);
+
 char *lp_parm_talloc_string(TALLOC_CTX *ctx, int snum, const char *type, const char *option, const char *def);
 const char *lp_parm_const_string(int snum, const char *type, const char *option, const char *def);
 struct loadparm_service;
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index 87e63e2..b24d198 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -1066,6 +1066,79 @@ static struct parmlist_entry *get_parametrics(int snum, const char *type,
 	}
 }
 
+static void discard_whitespace(char *str)
+{
+	size_t len = strlen(str);
+	size_t i = 0;
+
+	while (i < len) {
+		if (isspace(str[i])) {
+			memmove(&str[i], &str[i+1], len-i);
+			len -= 1;
+			continue;
+		}
+		i += 1;
+	}
+}
+
+/**
+ * @brief Go through all global parametric parameters
+ *
+ * @param regex_str	A regular expression to scan param for
+ * @param max_matches   Max number of submatches the regexp expects
+ * @param cb		Function to call on match. Should return true
+ *                      when it wants wi_scan_global_parametrics to stop
+ *                      scanning
+ * @param private_data  Anonymous pointer passed to cb
+ *
+ * @return              0: success, regcomp/regexec return value on error.
+ *                      See "man regexec" for possible errors
+ */
+
+int lp_wi_scan_global_parametrics(
+	const char *regex_str, size_t max_matches,
+	bool (*cb)(const char *string, regmatch_t matches[],
+		   void *private_data),
+	void *private_data)
+{
+	struct parmlist_entry *data;
+	regex_t regex;
+	int ret;
+
+	ret = regcomp(&regex, regex_str, REG_ICASE);
+	if (ret != 0) {
+		return ret;
+	}
+
+	for (data = Globals.param_opt; data != NULL; data = data->next) {
+		size_t keylen = strlen(data->key);
+		char key[keylen+1];
+		regmatch_t matches[max_matches];
+		bool stop;
+
+		memcpy(key, data->key, sizeof(key));
+		discard_whitespace(key);
+
+		ret = regexec(&regex, key, max_matches, matches, 0);
+		if (ret == REG_NOMATCH) {
+			continue;
+		}
+		if (ret != 0) {
+			goto fail;
+		}
+
+		stop = cb(key, matches, private_data);
+		if (stop) {
+			break;
+		}
+	}
+
+	ret = 0;
+fail:
+	regfree(&regex);
+	return ret;
+}
+
 
 #define MISSING_PARAMETER(name) \
     DEBUG(0, ("%s(): value is NULL or empty!\n", #name))
diff --git a/source3/torture/test_idmap_tdb_common.c b/source3/torture/test_idmap_tdb_common.c
index f7262a2..dd736ad 100644
--- a/source3/torture/test_idmap_tdb_common.c
+++ b/source3/torture/test_idmap_tdb_common.c
@@ -62,7 +62,7 @@ bool idmap_is_online(void)
 	return true;
 }
 
-NTSTATUS idmap_backends_unixid_to_sid(const char *domname, struct id_map *id)
+NTSTATUS idmap_backends_unixid_to_sid(struct id_map *id)
 {
 	return NT_STATUS_OK;
 }
diff --git a/source3/winbindd/idmap.c b/source3/winbindd/idmap.c
index 1e2feb9..8de8990 100644
--- a/source3/winbindd/idmap.c
+++ b/source3/winbindd/idmap.c
@@ -32,21 +32,6 @@
 
 static_decl_idmap;
 
-static void idmap_init(void)
-{
-	static bool initialized;
-
-	if (initialized) {
-		return;
-	}
-
-	DEBUG(10, ("idmap_init(): calling static_init_idmap\n"));
-
-	static_init_idmap;
-
-	initialized = true;
-}
-
 /**
  * Pointer to the backend methods. Modules register themselves here via
  * smb_register_idmap.
@@ -79,6 +64,105 @@ static struct idmap_domain *passdb_idmap_domain;
 static struct idmap_domain **idmap_domains = NULL;
 static int num_domains = 0;
 
+static struct idmap_domain *idmap_init_named_domain(TALLOC_CTX *mem_ctx,
+						    const char *domname);
+static struct idmap_domain *idmap_init_domain(TALLOC_CTX *mem_ctx,
+					      const char *domainname,
+					      const char *modulename,
+					      bool check_range);
+static bool idmap_found_domain_backend(
+	const char *string, regmatch_t matches[], void *private_data);
+
+static bool idmap_init(void)
+{
+	static bool initialized;
+	int ret;
+
+	if (initialized) {
+		return true;
+	}
+
+	DEBUG(10, ("idmap_init(): calling static_init_idmap\n"));
+
+	static_init_idmap;
+
+	initialized = true;
+
+	if (!pdb_is_responsible_for_everything_else()) {
+		default_idmap_domain = idmap_init_named_domain(NULL, "*");
+		if (default_idmap_domain == NULL) {
+			return false;
+		}
+	}
+
+	passdb_idmap_domain = idmap_init_domain(
+		NULL, get_global_sam_name(), "passdb", false);
+	if (passdb_idmap_domain == NULL) {
+		TALLOC_FREE(default_idmap_domain);
+		return false;
+	}
+
+	idmap_domains = talloc_array(NULL, struct idmap_domain *, 0);
+	if (idmap_domains == NULL) {
+		TALLOC_FREE(passdb_idmap_domain);
+		TALLOC_FREE(default_idmap_domain);
+		return false;
+	}
+
+	ret = lp_wi_scan_global_parametrics(
+		"idmapconfig\\(.*\\):backend", 2,
+		idmap_found_domain_backend, NULL);
+	if (ret != 0) {
+		DBG_WARNING("wi_scan_global_parametrics returned %d\n", ret);
+		return false;
+	}
+
+	return true;
+}
+
+static bool idmap_found_domain_backend(
+	const char *string, regmatch_t matches[], void *private_data)
+{
+	if (matches[1].rm_so == -1) {
+		DBG_WARNING("Found match, but no name??\n");
+		return false;
+	}
+
+	{
+		struct idmap_domain *dom, **tmp;
+		regoff_t len = matches[1].rm_eo - matches[1].rm_so;
+		char domname[len+1];
+
+		memcpy(domname, string + matches[1].rm_so, len);
+		domname[len] = '\0';
+
+		DBG_DEBUG("Found idmap domain \"%s\"\n", domname);
+
+		if (strcmp(domname, "*") == 0) {
+			return false;
+		}
+
+		dom = idmap_init_named_domain(idmap_domains, domname);
+		if (dom == NULL) {
+			DBG_NOTICE("Could not init idmap domain %s\n",
+				   domname);
+		}
+
+		tmp = talloc_realloc(idmap_domains, idmap_domains,
+				     struct idmap_domain *, num_domains + 1);
+		if (tmp == NULL) {
+			DBG_WARNING("talloc_realloc failed\n");
+			TALLOC_FREE(dom);
+			return false;
+		}
+		idmap_domains = tmp;
+		idmap_domains[num_domains] = dom;
+		num_domains += 1;
+	}
+
+	return false;
+}
+
 static struct idmap_methods *get_methods(const char *name)
 {
 	struct idmap_backend *b;
@@ -280,8 +364,12 @@ static struct idmap_domain *idmap_init_named_domain(TALLOC_CTX *mem_ctx,
 	struct idmap_domain *result = NULL;
 	char *config_option;
 	const char *backend;
+	bool ok;
 
-	idmap_init();
+	ok = idmap_init();
+	if (!ok) {
+		return NULL;
+	}
 
 	config_option = talloc_asprintf(talloc_tos(), "idmap config %s",
 					domname);
@@ -312,57 +400,6 @@ fail:
 }
 
 /**
- * Initialize the default domain structure
- * @param[in] mem_ctx		memory context for the result
- * @result The default domain structure
- *
- * This routine takes the module name from the "idmap backend" parameter,
- * passing a possible parameter like ldap:ldap://ldap-url/ to the module.
- */
-
-static struct idmap_domain *idmap_init_default_domain(TALLOC_CTX *mem_ctx)
-{
-	return idmap_init_named_domain(mem_ctx, "*");
-}
-
-/**
- * Initialize the passdb domain structure
- * @param[in] mem_ctx		memory context for the result
- * @result The default domain structure
- *
- * No config, passdb has its own configuration.
- */
-
-static struct idmap_domain *idmap_passdb_domain(TALLOC_CTX *mem_ctx)
-{
-	idmap_init();
-
-	if (!pdb_is_responsible_for_everything_else()) {
-		/*
-		 * Always init the default domain, we can't go without one
-		 */
-		if (default_idmap_domain == NULL) {
-			default_idmap_domain = idmap_init_default_domain(NULL);
-		}
-		if (default_idmap_domain == NULL) {
-			return NULL;
-		}
-	}
-
-	if (passdb_idmap_domain != NULL) {
-		return passdb_idmap_domain;
-	}
-
-	passdb_idmap_domain = idmap_init_domain(mem_ctx, get_global_sam_name(),
-						"passdb", false);
-	if (passdb_idmap_domain == NULL) {
-		DEBUG(1, ("Could not init passdb idmap domain\n"));
-	}
-
-	return passdb_idmap_domain;
-}
-
-/**
  * Find a domain struct according to a domain name
  * @param[in] domname		Domain name to get the config for
  * @result The default domain structure that fits
@@ -379,21 +416,14 @@ static struct idmap_domain *idmap_passdb_domain(TALLOC_CTX *mem_ctx)
 
 static struct idmap_domain *idmap_find_domain(const char *domname)
 {
-	struct idmap_domain *result;
+	bool ok;
 	int i;
 
 	DEBUG(10, ("idmap_find_domain called for domain '%s'\n",
 		   domname?domname:"NULL"));
 
-	idmap_init();
-
-	/*
-	 * Always init the default domain, we can't go without one
-	 */
-	if (default_idmap_domain == NULL) {
-		default_idmap_domain = idmap_init_default_domain(NULL);
-	}
-	if (default_idmap_domain == NULL) {
+	ok = idmap_init();
+	if (!ok) {
 		return NULL;
 	}
 
@@ -407,38 +437,21 @@ static struct idmap_domain *idmap_find_domain(const char *domname)
 		}
 	}
 
-	if (idmap_domains == NULL) {
-		/*
-		 * talloc context for all idmap domains
-		 */
-		idmap_domains = talloc_array(NULL, struct idmap_domain *, 1);
-	}
-
-	if (idmap_domains == NULL) {
-		DEBUG(0, ("talloc failed\n"));
-		return NULL;
-	}
-
-	result = idmap_init_named_domain(idmap_domains, domname);
-	if (result == NULL) {
-		/*
-		 * Could not init that domain -- try the default one
-		 */
-		return default_idmap_domain;
-	}
-
-	ADD_TO_ARRAY(idmap_domains, struct idmap_domain *, result,
-		     &idmap_domains, &num_domains);
-	return result;
+	return default_idmap_domain;
 }
 
 struct idmap_domain *idmap_find_domain_with_sid(const char *domname,
 						const struct dom_sid *sid)
 {
-	idmap_init();
+	bool ok;
+
+	ok = idmap_init();
+	if (!ok) {
+		return NULL;
+	}
 
 	if (sid_check_is_for_passdb(sid)) {
-		return idmap_passdb_domain(NULL);
+		return passdb_idmap_domain;
 	}
 
 	return idmap_find_domain(domname);
@@ -489,14 +502,20 @@ NTSTATUS idmap_allocate_gid(struct unixid *id)
 	return idmap_allocate_unixid(id);
 }
 
-NTSTATUS idmap_backends_unixid_to_sid(const char *domname, struct id_map *id)
+NTSTATUS idmap_backends_unixid_to_sid(struct id_map *id)
 {
 	struct idmap_domain *dom;
 	struct id_map *maps[2];
+	bool ok;
+	int i;
 
-	 DEBUG(10, ("idmap_backend_unixid_to_sid: domain = '%s', xid = %d "
-		    "(type %d)\n",
-		    domname?domname:"NULL", id->xid.id, id->xid.type));
+	ok = idmap_init();
+	if (!ok) {
+		return NT_STATUS_NONE_MAPPED;
+	}
+
+	DEBUG(10, ("idmap_backend_unixid_to_sid: xid = %d (type %d)\n",
+		   id->xid.id, id->xid.type));
 
 	maps[0] = id;
 	maps[1] = NULL;
@@ -505,14 +524,23 @@ NTSTATUS idmap_backends_unixid_to_sid(const char *domname, struct id_map *id)
 	 * Always give passdb a chance first
 	 */
 
-	dom = idmap_passdb_domain(NULL);
+	dom = passdb_idmap_domain;
 	if ((dom != NULL)
 	    && NT_STATUS_IS_OK(dom->methods->unixids_to_sids(dom, maps))
 	    && id->status == ID_MAPPED) {
 		return NT_STATUS_OK;
 	}
 
-	dom = idmap_find_domain(domname);
+	dom = default_idmap_domain;
+
+	for (i=0; i<num_domains; i++) {
+		if ((id->xid.id >= idmap_domains[i]->low_id) &&
+		    (id->xid.id <= idmap_domains[i]->high_id)) {
+			dom = idmap_domains[i];
+			break;
+		}
+	}
+
 	if (dom == NULL) {
 		return NT_STATUS_NONE_MAPPED;
 	}
diff --git a/source3/winbindd/idmap_proto.h b/source3/winbindd/idmap_proto.h
index f7af8ed..a12e5b4 100644
--- a/source3/winbindd/idmap_proto.h
+++ b/source3/winbindd/idmap_proto.h
@@ -34,8 +34,7 @@ NTSTATUS smb_register_idmap(int version, const char *name,
 void idmap_close(void);
 NTSTATUS idmap_allocate_uid(struct unixid *id);
 NTSTATUS idmap_allocate_gid(struct unixid *id);
-NTSTATUS idmap_backends_unixid_to_sid(const char *domname,
-				      struct id_map *id);
+NTSTATUS idmap_backends_unixid_to_sid(struct id_map *id);
 
 /* The following definitions come from winbindd/idmap_nss.c  */
 
@@ -51,8 +50,8 @@ NTSTATUS idmap_tdb_init(void);
 
 /* The following definitions come from winbindd/idmap_util.c  */
 
-NTSTATUS idmap_uid_to_sid(const char *domname, struct dom_sid *sid, uid_t uid);
-NTSTATUS idmap_gid_to_sid(const char *domname, struct dom_sid *sid, gid_t gid);
+NTSTATUS idmap_uid_to_sid(struct dom_sid *sid, uid_t uid);
+NTSTATUS idmap_gid_to_sid(struct dom_sid *sid, gid_t gid);
 bool idmap_unix_id_is_in_range(uint32_t id, struct idmap_domain *dom);
 struct id_map *idmap_find_map_by_id(struct id_map **maps, enum id_type type,
 				    uint32_t id);
diff --git a/source3/winbindd/idmap_util.c b/source3/winbindd/idmap_util.c
index e671acf..dc7d37c 100644
--- a/source3/winbindd/idmap_util.c
+++ b/source3/winbindd/idmap_util.c
@@ -34,14 +34,13 @@
  If mapping is not possible returns an error.


-- 
Samba Shared Repository



More information about the samba-cvs mailing list