ldb_ildap: require ldb_get_opaque(ldb, "loadparm") to be valid
authorStefan Metzmacher <metze@samba.org>
Wed, 17 Apr 2024 19:02:03 +0000 (21:02 +0200)
committerAndrew Bartlett <abartlet@samba.org>
Tue, 23 Apr 2024 23:50:33 +0000 (23:50 +0000)
Without a valid loadparm_context we can't connect.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
lib/ldb-samba/ldb_ildap.c

index 37ef185fbbfd1dd82f39070b831c21ce1d39d23e..0c051f143a7fc964f48bb7d4660418b434b4befd 100644 (file)
@@ -917,6 +917,12 @@ static int ildb_connect(struct ldb_context *ldb, const char *url,
        struct cli_credentials *creds;
        struct loadparm_context *lp_ctx;
 
+       lp_ctx = talloc_get_type(ldb_get_opaque(ldb, "loadparm"),
+                                struct loadparm_context);
+       if (lp_ctx == NULL) {
+               return ldb_operr(ldb);
+       }
+
        module = ldb_module_new(ldb, ldb, "ldb_ildap backend", &ildb_ops);
        if (!module) return LDB_ERR_OPERATIONS_ERROR;
 
@@ -929,9 +935,6 @@ static int ildb_connect(struct ldb_context *ldb, const char *url,
 
        ildb->event_ctx = ldb_get_event_context(ldb);
 
-       lp_ctx = talloc_get_type(ldb_get_opaque(ldb, "loadparm"),
-                                struct loadparm_context);
-
        ildb->ldap = ldap4_new_connection(ildb, lp_ctx,
                                          ildb->event_ctx);
        if (!ildb->ldap) {