summaryrefslogtreecommitdiff
path: root/source4/lib/ldb/ldb_ildap/ldb_ildap.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/lib/ldb/ldb_ildap/ldb_ildap.c')
-rw-r--r--source4/lib/ldb/ldb_ildap/ldb_ildap.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/source4/lib/ldb/ldb_ildap/ldb_ildap.c b/source4/lib/ldb/ldb_ildap/ldb_ildap.c
index 3f63af482f..6560485be5 100644
--- a/source4/lib/ldb/ldb_ildap/ldb_ildap.c
+++ b/source4/lib/ldb/ldb_ildap/ldb_ildap.c
@@ -340,7 +340,11 @@ static int ildb_unlock(struct ldb_module *module, const char *lockname)
*/
static const char *ildb_errstring(struct ldb_module *module)
{
- struct ildb_private *ildb = module->private_data;
+ struct ildb_private *ildb = talloc_get_type(module->private_data,
+ struct ildb_private);
+ if (ildb == NULL) {
+ return "ildap not connected";
+ }
return ldap_errstr(ildb->ldap, ildb->last_rc);
}
@@ -427,6 +431,9 @@ int ildb_connect(struct ldb_context *ldb, const char *url,
return 0;
failed:
+ if (ldb->modules) {
+ ldb->modules->private_data = NULL;
+ }
talloc_free(ildb);
return -1;
}