mirror of
https://github.com/samba-team/samba.git
synced 2025-01-12 09:18:10 +03:00
r19196: merge from samba3:
pass always a mem_ctx to functions and a ldb_context where needed
metze
(This used to be commit 67a6a41ba3
)
This commit is contained in:
parent
d66e80c650
commit
bbc056e067
@ -230,7 +230,7 @@ static int ldb_canonicalise_dn(struct ldb_context *ldb, void *mem_ctx,
|
||||
out->length = 0;
|
||||
out->data = NULL;
|
||||
|
||||
dn = ldb_dn_explode_casefold(ldb, (char *)in->data);
|
||||
dn = ldb_dn_explode_casefold(ldb, mem_ctx, (char *)in->data);
|
||||
if (dn == NULL) {
|
||||
return -1;
|
||||
}
|
||||
@ -258,10 +258,10 @@ static int ldb_comparison_dn(struct ldb_context *ldb, void *mem_ctx,
|
||||
struct ldb_dn *dn1 = NULL, *dn2 = NULL;
|
||||
int ret;
|
||||
|
||||
dn1 = ldb_dn_explode_casefold(mem_ctx, (char *)v1->data);
|
||||
dn1 = ldb_dn_explode_casefold(ldb, mem_ctx, (char *)v1->data);
|
||||
if (dn1 == NULL) return -1;
|
||||
|
||||
dn2 = ldb_dn_explode_casefold(mem_ctx, (char *)v2->data);
|
||||
dn2 = ldb_dn_explode_casefold(ldb, mem_ctx, (char *)v2->data);
|
||||
if (dn2 == NULL) {
|
||||
talloc_free(dn1);
|
||||
return -1;
|
||||
|
@ -554,10 +554,10 @@ int ldb_dn_cmp(struct ldb_context *ldb, const char *dn0, const char *dn1)
|
||||
|
||||
if (dn0 == NULL || dn1 == NULL) return dn1 - dn0;
|
||||
|
||||
edn0 = ldb_dn_explode_casefold(ldb, dn0);
|
||||
edn0 = ldb_dn_explode_casefold(ldb, ldb, dn0);
|
||||
if (edn0 == NULL) return 1;
|
||||
|
||||
edn1 = ldb_dn_explode_casefold(ldb, dn1);
|
||||
edn1 = ldb_dn_explode_casefold(ldb, ldb, dn1);
|
||||
if (edn1 == NULL) {
|
||||
talloc_free(edn0);
|
||||
return -1;
|
||||
@ -575,14 +575,14 @@ int ldb_dn_cmp(struct ldb_context *ldb, const char *dn0, const char *dn1)
|
||||
casefold a dn. We need to casefold the attribute names, and canonicalize
|
||||
attribute values of case insensitive attributes.
|
||||
*/
|
||||
struct ldb_dn *ldb_dn_casefold(struct ldb_context *ldb, const struct ldb_dn *edn)
|
||||
struct ldb_dn *ldb_dn_casefold(struct ldb_context *ldb, void *mem_ctx, const struct ldb_dn *edn)
|
||||
{
|
||||
struct ldb_dn *cedn;
|
||||
int i;
|
||||
int i, ret;
|
||||
|
||||
if (edn == NULL) return NULL;
|
||||
|
||||
cedn = ldb_dn_new(ldb);
|
||||
cedn = ldb_dn_new(mem_ctx);
|
||||
if (!cedn) {
|
||||
return NULL;
|
||||
}
|
||||
@ -599,14 +599,17 @@ struct ldb_dn *ldb_dn_casefold(struct ldb_context *ldb, const struct ldb_dn *edn
|
||||
const struct ldb_attrib_handler *h;
|
||||
|
||||
memset(&dc, 0, sizeof(dc));
|
||||
dc.name = ldb_attr_casefold(cedn, edn->components[i].name);
|
||||
dc.name = ldb_attr_casefold(cedn->components, edn->components[i].name);
|
||||
if (!dc.name) {
|
||||
talloc_free(cedn);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
h = ldb_attrib_handler(ldb, dc.name);
|
||||
if (h->canonicalise_fn(ldb, cedn, &(edn->components[i].value), &(dc.value)) != 0) {
|
||||
ret = h->canonicalise_fn(ldb, cedn->components,
|
||||
&(edn->components[i].value),
|
||||
&(dc.value));
|
||||
if (ret != 0) {
|
||||
talloc_free(cedn);
|
||||
return NULL;
|
||||
}
|
||||
@ -617,7 +620,7 @@ struct ldb_dn *ldb_dn_casefold(struct ldb_context *ldb, const struct ldb_dn *edn
|
||||
return cedn;
|
||||
}
|
||||
|
||||
struct ldb_dn *ldb_dn_explode_casefold(struct ldb_context *ldb, const char *dn)
|
||||
struct ldb_dn *ldb_dn_explode_casefold(struct ldb_context *ldb, void *mem_ctx, const char *dn)
|
||||
{
|
||||
struct ldb_dn *edn, *cdn;
|
||||
|
||||
@ -626,13 +629,13 @@ struct ldb_dn *ldb_dn_explode_casefold(struct ldb_context *ldb, const char *dn)
|
||||
edn = ldb_dn_explode(ldb, dn);
|
||||
if (edn == NULL) return NULL;
|
||||
|
||||
cdn = ldb_dn_casefold(ldb, edn);
|
||||
cdn = ldb_dn_casefold(ldb, mem_ctx, edn);
|
||||
|
||||
talloc_free(edn);
|
||||
return cdn;
|
||||
}
|
||||
|
||||
char *ldb_dn_linearize_casefold(struct ldb_context *ldb, const struct ldb_dn *edn)
|
||||
char *ldb_dn_linearize_casefold(struct ldb_context *ldb, void *mem_ctx, const struct ldb_dn *edn)
|
||||
{
|
||||
struct ldb_dn *cdn;
|
||||
char *dn;
|
||||
@ -641,11 +644,11 @@ char *ldb_dn_linearize_casefold(struct ldb_context *ldb, const struct ldb_dn *ed
|
||||
|
||||
/* Special DNs */
|
||||
if (ldb_dn_is_special(edn)) {
|
||||
dn = talloc_strdup(ldb, (char *)edn->components[0].value.data);
|
||||
dn = talloc_strdup(mem_ctx, (char *)edn->components[0].value.data);
|
||||
return dn;
|
||||
}
|
||||
|
||||
cdn = ldb_dn_casefold(ldb, edn);
|
||||
cdn = ldb_dn_casefold(ldb, mem_ctx, edn);
|
||||
if (cdn == NULL) return NULL;
|
||||
|
||||
dn = ldb_dn_linearize(ldb, cdn);
|
||||
|
@ -149,7 +149,7 @@ static int ldb_match_equality(struct ldb_context *ldb,
|
||||
int ret;
|
||||
|
||||
if (ldb_attr_dn(tree->u.equality.attr) == 0) {
|
||||
valuedn = ldb_dn_explode_casefold(ldb,
|
||||
valuedn = ldb_dn_explode_casefold(ldb, ldb,
|
||||
(char *)tree->u.equality.value.data);
|
||||
if (valuedn == NULL) {
|
||||
return 0;
|
||||
|
@ -44,14 +44,13 @@
|
||||
#define LDB_MODULE_PREFIX "modules:"
|
||||
#define LDB_MODULE_PREFIX_LEN 8
|
||||
|
||||
static char *talloc_strdup_no_spaces(struct ldb_context *ldb, const char *string)
|
||||
static char *ldb_modules_strdup_no_spaces(TALLOC_CTX *mem_ctx, const char *string)
|
||||
{
|
||||
int i, len;
|
||||
char *trimmed;
|
||||
|
||||
trimmed = talloc_strdup(ldb, string);
|
||||
trimmed = talloc_strdup(mem_ctx, string);
|
||||
if (!trimmed) {
|
||||
ldb_debug(ldb, LDB_DEBUG_FATAL, "Out of Memory in talloc_strdup_trim_spaces()\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -81,9 +80,9 @@ const char **ldb_modules_list_from_string(struct ldb_context *ldb, TALLOC_CTX *m
|
||||
int i;
|
||||
|
||||
/* spaces not admitted */
|
||||
modstr = talloc_strdup_no_spaces((struct ldb_context *)mem_ctx,
|
||||
string);
|
||||
modstr = ldb_modules_strdup_no_spaces(mem_ctx, string);
|
||||
if ( ! modstr) {
|
||||
ldb_debug(ldb, LDB_DEBUG_FATAL, "Out of Memory in ldb_modules_strdup_no_spaces()\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -1146,11 +1146,11 @@ struct ldb_dn *ldb_dn_new(void *mem_ctx);
|
||||
struct ldb_dn *ldb_dn_explode(void *mem_ctx, const char *dn);
|
||||
struct ldb_dn *ldb_dn_explode_or_special(void *mem_ctx, const char *dn);
|
||||
char *ldb_dn_linearize(void *mem_ctx, const struct ldb_dn *edn);
|
||||
char *ldb_dn_linearize_casefold(struct ldb_context *ldb, const struct ldb_dn *edn);
|
||||
char *ldb_dn_linearize_casefold(struct ldb_context *ldb, void *mem_ctx, const struct ldb_dn *edn);
|
||||
int ldb_dn_compare_base(struct ldb_context *ldb, const struct ldb_dn *base, const struct ldb_dn *dn);
|
||||
int ldb_dn_compare(struct ldb_context *ldb, const struct ldb_dn *edn0, const struct ldb_dn *edn1);
|
||||
struct ldb_dn *ldb_dn_casefold(struct ldb_context *ldb, const struct ldb_dn *edn);
|
||||
struct ldb_dn *ldb_dn_explode_casefold(struct ldb_context *ldb, const char *dn);
|
||||
struct ldb_dn *ldb_dn_casefold(struct ldb_context *ldb, void *mem_ctx, const struct ldb_dn *edn);
|
||||
struct ldb_dn *ldb_dn_explode_casefold(struct ldb_context *ldb, void *mem_ctx, const char *dn);
|
||||
struct ldb_dn *ldb_dn_copy_partial(void *mem_ctx, const struct ldb_dn *dn, int num_el);
|
||||
struct ldb_dn *ldb_dn_copy(void *mem_ctx, const struct ldb_dn *dn);
|
||||
struct ldb_dn *ldb_dn_get_parent(void *mem_ctx, const struct ldb_dn *dn);
|
||||
|
@ -138,7 +138,7 @@ struct TDB_DATA ltdb_key(struct ldb_module *module, const struct ldb_dn *dn)
|
||||
the rest
|
||||
*/
|
||||
|
||||
dn_folded = ldb_dn_linearize_casefold(ldb, dn);
|
||||
dn_folded = ldb_dn_linearize_casefold(ldb, ldb, dn);
|
||||
if (!dn_folded) {
|
||||
goto failed;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user