From 942eb58e61621dc710a2c96418dda6aaba7e06c3 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Wed, 25 May 2005 09:05:23 +0000 Subject: r6967: fixed the new multi-value dn=@ATTRIBUTES so it actually works :-) this demonstrates that we need a improved test suite as well (This used to be commit 959c73e93faa243154288c91a716e5a293d7a51c) --- source4/lib/ldb/ldb_tdb/ldb_cache.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'source4') diff --git a/source4/lib/ldb/ldb_tdb/ldb_cache.c b/source4/lib/ldb/ldb_tdb/ldb_cache.c index 0fe573a829..0bc2d7b123 100644 --- a/source4/lib/ldb/ldb_tdb/ldb_cache.c +++ b/source4/lib/ldb/ldb_tdb/ldb_cache.c @@ -261,7 +261,7 @@ int ltdb_attribute_flags(struct ldb_module *module, const char *attr_name) { struct ltdb_private *ltdb = module->private_data; const struct ldb_message_element *attr_el; - int i, ret=0; + int i, j, ret=0; if (ltdb->cache->last_attribute.name && ldb_attr_cmp(ltdb->cache->last_attribute.name, attr_name) == 0) { @@ -276,7 +276,6 @@ int ltdb_attribute_flags(struct ldb_module *module, const char *attr_name) attr_el = ldb_msg_find_element(ltdb->cache->attributes, attr_name); if (!attr_el) { - /* check if theres a wildcard attribute */ attr_el = ldb_msg_find_element(ltdb->cache->attributes, "*"); @@ -286,8 +285,11 @@ int ltdb_attribute_flags(struct ldb_module *module, const char *attr_name) } for (i = 0; i < attr_el->num_values; i++) { - if (strcmp(ltdb_valid_attr_flags[i].name, attr_el->values[i].data) == 0) { - ret |= ltdb_valid_attr_flags[i].value; + for (j=0; ltdb_valid_attr_flags[j].name; j++) { + if (strcmp(ltdb_valid_attr_flags[j].name, + attr_el->values[i].data) == 0) { + ret |= ltdb_valid_attr_flags[j].value; + } } } -- cgit