From: Volker Lendecke Date: Mon, 12 Apr 2021 08:29:02 +0000 (+0000) Subject: lib: Simplify tdb_fetch_uint32_t() X-Git-Tag: tevent-0.11.0~1110 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7f0a87990e5e98a28ce677cc91fe339ca4e301c8;p=thirdparty%2Fsamba.git lib: Simplify tdb_fetch_uint32_t() With tdb_parse_record() we don't need malloc/SAFE_FREE Signed-off-by: Volker Lendecke Reviewed-by: Jeremy Allison --- diff --git a/lib/util/util_tdb.c b/lib/util/util_tdb.c index ee3e8ec0fa4..66caaa5af60 100644 --- a/lib/util/util_tdb.c +++ b/lib/util/util_tdb.c @@ -191,20 +191,20 @@ int tdb_store_int32(struct tdb_context *tdb, const char *keystr, int32_t v) Output is uint32_t in native byte order. ****************************************************************************/ -static bool tdb_fetch_uint32_byblob(struct tdb_context *tdb, TDB_DATA key, - uint32_t *value) +static int fetch_uint32_parser(TDB_DATA key, TDB_DATA data, void *private_data) { - TDB_DATA data; - - data = tdb_fetch(tdb, key); - if (!data.dptr || data.dsize != sizeof(uint32_t)) { - SAFE_FREE(data.dptr); - return false; + if (data.dsize != sizeof(uint32_t)) { + return -1; } + *((uint32_t *)private_data) = PULL_LE_U32(data.dptr, 0); + return 0; +} - *value = IVAL(data.dptr,0); - SAFE_FREE(data.dptr); - return true; +static bool tdb_fetch_uint32_byblob(struct tdb_context *tdb, TDB_DATA key, + uint32_t *value) +{ + int ret = tdb_parse_record(tdb, key, fetch_uint32_parser, value); + return ret; } /****************************************************************************