From: Andreas Schneider Date: Thu, 2 May 2024 13:15:43 +0000 (+0200) Subject: lib:ldb: Use tdb_parse_record() in ldb_kv_sub_transaction_traverse() X-Git-Tag: tdb-1.4.13~1148 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=03c2f3d1fdb75ec2776ba90095fcbc934e40967b;p=thirdparty%2Fsamba.git lib:ldb: Use tdb_parse_record() in ldb_kv_sub_transaction_traverse() Signed-off-by: Andreas Schneider Reviewed-by: Volker Lendecke --- diff --git a/lib/ldb/ldb_key_value/ldb_kv_index.c b/lib/ldb/ldb_key_value/ldb_kv_index.c index 6a265166e1d..cbc594e5457 100644 --- a/lib/ldb/ldb_key_value/ldb_kv_index.c +++ b/lib/ldb/ldb_key_value/ldb_kv_index.c @@ -3888,6 +3888,9 @@ static int ldb_kv_sub_transaction_traverse( TDB_DATA rec = {0}; struct dn_list *index_in_subtransaction = NULL; struct dn_list *index_in_top_level = NULL; + struct ldb_dn_list_state sub_state = { + .module = module, + }; int ret = 0; /* @@ -3908,10 +3911,12 @@ static int ldb_kv_sub_transaction_traverse( * The TDB and so the fetched rec contains NO DATA, just a * pointer to data held in memory. */ - rec = tdb_fetch(ldb_kv->idxptr->itdb, key); - if (rec.dptr != NULL) { - index_in_top_level = ldb_kv_index_idxptr(module, rec); - free(rec.dptr); + ret = tdb_parse_record(ldb_kv->idxptr->itdb, + key, + ldb_kv_index_idxptr_wrapper, + &sub_state); + if (ret == 0) { + index_in_top_level = sub_state.list; if (index_in_top_level == NULL) { abort(); }