summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/lib/ldb/ldb_tdb/ldb_tdb.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/source4/lib/ldb/ldb_tdb/ldb_tdb.c b/source4/lib/ldb/ldb_tdb/ldb_tdb.c
index 949164a505..45a8109584 100644
--- a/source4/lib/ldb/ldb_tdb/ldb_tdb.c
+++ b/source4/lib/ldb/ldb_tdb/ldb_tdb.c
@@ -961,16 +961,20 @@ static int ltdb_request(struct ldb_module *module, struct ldb_request *req)
*/
static int ltdb_sequence_number(struct ldb_module *module, struct ldb_request *req)
{
- TALLOC_CTX *tmp_ctx = talloc_new(req);
+ TALLOC_CTX *tmp_ctx;
struct ldb_message *msg = NULL;
- struct ldb_dn *dn = ldb_dn_new(tmp_ctx, module->ldb, LTDB_BASEINFO);
+ struct ldb_dn *dn;
+ const char *date;
int tret;
+ tmp_ctx = talloc_new(req);
if (tmp_ctx == NULL) {
talloc_free(tmp_ctx);
return LDB_ERR_OPERATIONS_ERROR;
}
+ dn = ldb_dn_new(tmp_ctx, module->ldb, LTDB_BASEINFO);
+
msg = talloc(tmp_ctx, struct ldb_message);
if (msg == NULL) {
talloc_free(tmp_ctx);
@@ -996,8 +1000,7 @@ static int ltdb_sequence_number(struct ldb_module *module, struct ldb_request *r
req->op.seq_num.seq_num++;
break;
case LDB_SEQ_HIGHEST_TIMESTAMP:
- {
- const char *date = ldb_msg_find_attr_as_string(msg, LTDB_MOD_TIMESTAMP, NULL);
+ date = ldb_msg_find_attr_as_string(msg, LTDB_MOD_TIMESTAMP, NULL);
if (date) {
req->op.seq_num.seq_num = ldb_string_to_time(date);
} else {
@@ -1006,7 +1009,6 @@ static int ltdb_sequence_number(struct ldb_module *module, struct ldb_request *r
}
break;
}
- }
talloc_free(tmp_ctx);
return LDB_SUCCESS;
}