From fd59a7c4affdd1a6c6fe7caf29264acabcd0c03e Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Mon, 16 Aug 2010 11:03:58 +1000 Subject: s4-ldb: fixed the ldb 'displayName=a,b' indexing bug the problem was the inconsistency between the key form of DNs between the itdb used for indexing and the on disk form Thanks to Matthieu Patou for finding this bug! Signed-off-by: Andrew Bartlett --- source4/lib/ldb/ldb_tdb/ldb_index.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'source4/lib') diff --git a/source4/lib/ldb/ldb_tdb/ldb_index.c b/source4/lib/ldb/ldb_tdb/ldb_index.c index 4f5979877b..a39e6c7097 100644 --- a/source4/lib/ldb/ldb_tdb/ldb_index.c +++ b/source4/lib/ldb/ldb_tdb/ldb_index.c @@ -1446,8 +1446,10 @@ static int delete_index(struct tdb_context *tdb, TDB_DATA key, TDB_DATA data, vo * index entry */ list.dn = NULL; list.count = 0; - v.data = key.dptr; - v.length = strnlen((char *)key.dptr, key.dsize); + + /* the offset of 3 is to remove the DN= prefix. */ + v.data = key.dptr + 3; + v.length = strnlen((char *)key.dptr, key.dsize) - 3; dn = ldb_dn_from_ldb_val(ltdb, ldb_module_get_ctx(module), &v); ret = ltdb_dn_list_store(module, dn, &list); -- cgit