From 7290a622844def1086cff993aaba958bc976538d Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Mon, 26 Mar 2012 12:06:39 +1100 Subject: [PATCH] s4-dsdb: use constant-time search for descriptor -> get_last_structural_class() The objectClass list is sorted at this point, as we are called below the objectclass module here, or are working from a search result. Andrew Bartlett Autobuild-User: Andrew Bartlett Autobuild-Date: Mon Mar 26 05:38:13 CEST 2012 on sn-devel-104 --- source4/dsdb/samdb/ldb_modules/descriptor.c | 4 ++-- source4/dsdb/samdb/ldb_modules/samba_dsdb.c | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/source4/dsdb/samdb/ldb_modules/descriptor.c b/source4/dsdb/samdb/ldb_modules/descriptor.c index 47207db2014..f2afe742af0 100644 --- a/source4/dsdb/samdb/ldb_modules/descriptor.c +++ b/source4/dsdb/samdb/ldb_modules/descriptor.c @@ -543,7 +543,7 @@ static int descriptor_add(struct ldb_module *module, struct ldb_request *req) } objectclass = get_last_structural_class(schema, objectclass_element, - false); + true); if (objectclass == NULL) { return ldb_operr(ldb); } @@ -662,7 +662,7 @@ static int descriptor_modify(struct ldb_module *module, struct ldb_request *req) } objectclass = get_last_structural_class(schema, objectclass_element, - false); + true); if (objectclass == NULL) { return ldb_operr(ldb); } diff --git a/source4/dsdb/samdb/ldb_modules/samba_dsdb.c b/source4/dsdb/samdb/ldb_modules/samba_dsdb.c index c7c4fe377c0..d58b584b779 100644 --- a/source4/dsdb/samdb/ldb_modules/samba_dsdb.c +++ b/source4/dsdb/samdb/ldb_modules/samba_dsdb.c @@ -150,6 +150,8 @@ static int samba_dsdb_init(struct ldb_module *module) - extended_dn_in must be before objectclass.c, as it resolves the DN - objectclass must be before password_hash and samldb since these LDB modules require the expanded "objectClass" list + - objectclass must be before descriptor, as descriptor assumes that + objectClass values are sorted - objectclass_attrs must be behind operational in order to see all attributes (the operational module protects and therefore suppresses per default some important ones) -- 2.34.1