From b1b9617d1c1833da2efa93b011733060c6670976 Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Tue, 1 Aug 2006 03:22:02 +0000 Subject: r17350: Avoid a couple of memleaks, unnecessary code and use a more linear style (This used to be commit 97c4d41a30a5d85145abb781cb7001b502bc7dcb) --- source4/lib/ldb/include/ldb.h | 16 ++++++++++++++++ source4/lib/ldb/ldb_tdb/ldb_tdb.c | 39 ++++++++++++--------------------------- 2 files changed, 28 insertions(+), 27 deletions(-) (limited to 'source4') diff --git a/source4/lib/ldb/include/ldb.h b/source4/lib/ldb/include/ldb.h index d017861b05..08bb2dd2f6 100644 --- a/source4/lib/ldb/include/ldb.h +++ b/source4/lib/ldb/include/ldb.h @@ -502,6 +502,22 @@ typedef int (*ldb_qsort_cmp_fn_t) (void *v1, void *v2, void *opaque); */ #define LDB_EXTENDED_START_TLS_OID "1.3.6.1.4.1.1466.20037" +/** + OID for LDAP Extended Operation START_TLS. + + This Extended operation is used to start a new TLS + channel on top of a clear text channel. +*/ +#define LDB_EXTENDED_DYNAMIC_OID "1.3.6.1.4.1.1466.101.119.1" + +/** + OID for LDAP Extended Operation START_TLS. + + This Extended operation is used to start a new TLS + channel on top of a clear text channel. +*/ +#define LDB_EXTENDED_FAST_BIND_OID "1.2.840.113556.1.4.1781" + struct ldb_paged_control { int size; int cookie_len; diff --git a/source4/lib/ldb/ldb_tdb/ldb_tdb.c b/source4/lib/ldb/ldb_tdb/ldb_tdb.c index 588f73fe23..7ee715f561 100644 --- a/source4/lib/ldb/ldb_tdb/ldb_tdb.c +++ b/source4/lib/ldb/ldb_tdb/ldb_tdb.c @@ -270,41 +270,26 @@ static int ltdb_add_internal(struct ldb_module *module, const struct ldb_message } ret = ltdb_store(module, msg, TDB_INSERT); - switch (ret) { - case LDB_SUCCESS: - { - TALLOC_CTX *mem_ctx = talloc_new(module); + + if (ret == LDB_ERR_ENTRY_ALREADY_EXISTS) { char *dn; - dn = ldb_dn_linearize(mem_ctx, msg->dn); + + dn = ldb_dn_linearize(module, msg->dn); if (!dn) { - break; + return ret; } + ldb_set_errstring(module->ldb, talloc_asprintf(module, "Entry %s already exists", dn)); + talloc_free(dn); + return ret; + } + + if (ret == LDB_SUCCESS) { ret = ltdb_modified(module, msg->dn); if (ret != LDB_SUCCESS) { return LDB_ERR_OPERATIONS_ERROR; } - break; - } - case LDB_ERR_ENTRY_ALREADY_EXISTS: - { - TALLOC_CTX *mem_ctx = talloc_new(module); - char *errstring, *dn; - if (!mem_ctx) { - break; - } - dn = ldb_dn_linearize(mem_ctx, msg->dn); - if (!dn) { - break; - } - errstring = talloc_asprintf(mem_ctx, "Entry %s already exists", - dn); - ldb_set_errstring(module->ldb, errstring); - talloc_free(mem_ctx); - break; - } - default: - break; } + return ret; } -- cgit