r5664: simo, please look into this. It is possible for the number of elements
authorAndrew Tridgell <tridge@samba.org>
Sat, 5 Mar 2005 21:59:02 +0000 (21:59 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:10:57 +0000 (13:10 -0500)
in msg[0] to be 0, in which case we crash. This is a workaround.

Also, if you could please split up this function into readable
pieces. It's a bit of a mess at the moment.
(This used to be commit 19a22f78c28a4b265f59df1b43c1bb6c9e58f736)

source4/lib/ldb/common/ldb_modules.c

index f8162aee8c78b939c59234c223f7ee3e949b386f..ee70a639fa6ca5c4c0cc27bdf3f554b3503bb92f 100644 (file)
@@ -94,7 +94,7 @@ int ldb_load_modules(struct ldb_context *ldb, const char *options[])
                char *modstr, *c, *p; 
 
                ret = ldb_search(ldb, "", LDB_SCOPE_BASE, "dn=@MODULES", attrs, &msg);
-               if (ret == 0) {
+               if (ret == 0 || (ret == 1 && msg[0]->num_elements == 0)) {
                        ldb_debug(ldb, LDB_DEBUG_TRACE, "no modules required by the db\n");
                } else {
                        if (ret < 0) {
@@ -184,6 +184,7 @@ int ldb_load_modules(struct ldb_context *ldb, const char *options[])
                                continue;
                        }
 
+#ifdef _SAMBA_BUILD_
                        if (strcmp(modules[i], "samldb") == 0) {
                                current = samldb_module_init(ldb, options);
                                if (!current) {
@@ -193,6 +194,7 @@ int ldb_load_modules(struct ldb_context *ldb, const char *options[])
                                DLIST_ADD(ldb->modules, current);
                                continue;
                        }
+#endif
 
 #ifdef HAVE_DLOPEN_DISABLED
                        filename = talloc_asprintf(ldb, "%s.so", modules[i]);