From: Douglas Bagnall Date: Tue, 19 Mar 2024 23:18:12 +0000 (+1300) Subject: lib/ldb: don't allow repeated connections X-Git-Tag: tdb-1.4.11~1405 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2ed90bbfb4777f5948df10760342c031b5fcd081;p=thirdparty%2Fsamba.git lib/ldb: don't allow repeated connections In the best case, this would have leaked. Signed-off-by: Douglas Bagnall Reviewed-by: Andrew Bartlett --- diff --git a/lib/ldb/common/ldb.c b/lib/ldb/common/ldb.c index 7d3b2dc6afa..71a5c98a542 100644 --- a/lib/ldb/common/ldb.c +++ b/lib/ldb/common/ldb.c @@ -243,6 +243,17 @@ int ldb_connect(struct ldb_context *ldb, const char *url, { int ret; char *url2; + + const char *existing_url = ldb_get_opaque(ldb, "ldb_url"); + if (existing_url != NULL) { + ldb_asprintf_errstring( + ldb, + "This LDB has already connected to '%s', and " + "cannot also connect to '%s'", + existing_url, url); + return LDB_ERR_OPERATIONS_ERROR; + } + /* We seem to need to do this here, or else some utilities don't * get ldb backends */ diff --git a/selftest/knownfail.d/ldb-api-connect b/selftest/knownfail.d/ldb-api-connect deleted file mode 100644 index 8f82c268ec7..00000000000 --- a/selftest/knownfail.d/ldb-api-connect +++ /dev/null @@ -1,4 +0,0 @@ -^ldb.python.api.*api.SimpleLdb.test_connect_twice -^ldb.python.api.*api.SimpleLdb.test_connect_twice_later -^ldb.python.api.*api.SimpleLdbLmdb.test_connect_twice -^ldb.python.api.*api.SimpleLdbLmdb.test_connect_twice_later