mirror of
https://github.com/samba-team/samba.git
synced 2025-01-26 10:04:02 +03:00
r20398: Revert this patch, which caused failures in the samba3sam.js build farm test.
The interaction of the samldb.c module and this function is complex... Andrew Bartlett
This commit is contained in:
parent
77169958fc
commit
bf7ab75875
@ -626,38 +626,32 @@ uint16_t samdb_result_acct_flags(struct ldb_message *msg, const char *attr)
|
||||
|
||||
|
||||
/* Find an attribute, with a particular value */
|
||||
|
||||
/* The current callers of this function expect a very specific
|
||||
* behaviour: In particular, objectClass subclass equivilance is not
|
||||
* wanted. This means that we should not lookup the schema for the
|
||||
* comparison function */
|
||||
struct ldb_message_element *samdb_find_attribute(struct ldb_context *ldb,
|
||||
const struct ldb_message *msg,
|
||||
const char *name, const char *value)
|
||||
{
|
||||
int i;
|
||||
struct ldb_message_element *el = ldb_msg_find_element(msg, name);
|
||||
const struct ldb_schema_attribute *a;
|
||||
struct ldb_val v;
|
||||
|
||||
TALLOC_CTX *tmp_ctx = talloc_new(ldb);
|
||||
if (!tmp_ctx) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
v.data = discard_const_p(uint8_t, value);
|
||||
v.length = strlen(value);
|
||||
|
||||
if (!el) {
|
||||
talloc_free(tmp_ctx);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
a = ldb_schema_attribute_by_name(ldb, name);
|
||||
|
||||
for (i=0;i<el->num_values;i++) {
|
||||
if (a->syntax->comparison_fn(ldb, tmp_ctx, &el->values[i], &v) == 0) {
|
||||
talloc_free(tmp_ctx);
|
||||
if (strcasecmp(value, (char *)el->values[i].data) == 0) {
|
||||
return el;
|
||||
}
|
||||
}
|
||||
|
||||
talloc_free(tmp_ctx);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user