From: Volker Lendecke Date: Wed, 16 Oct 2019 13:27:49 +0000 (+0200) Subject: dbwrap_tdb: Avoid a use of talloc_stackframe() X-Git-Tag: talloc-2.3.1~127 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d6223677bfded0aed659df4a78f318ffc180003c;p=thirdparty%2Fsamba.git dbwrap_tdb: Avoid a use of talloc_stackframe() For really large keys (that probably don't exist), use dump_data() Signed-off-by: Volker Lendecke Reviewed-by: Jeremy Allison --- diff --git a/lib/dbwrap/dbwrap_tdb.c b/lib/dbwrap/dbwrap_tdb.c index eb08a01a161..1ac7dc9ed7a 100644 --- a/lib/dbwrap/dbwrap_tdb.c +++ b/lib/dbwrap/dbwrap_tdb.c @@ -42,24 +42,24 @@ static NTSTATUS db_tdb_delete(struct db_record *rec); static void db_tdb_log_key(const char *prefix, TDB_DATA key) { - size_t len; - char *keystr; - TALLOC_CTX *frame; if (DEBUGLEVEL < 10) { return; } - frame = talloc_stackframe(); - len = key.dsize; if (DEBUGLEVEL == 10) { /* * Only fully spam at debuglevel > 10 */ - len = MIN(10, key.dsize); + key.dsize = MIN(10, key.dsize); } - keystr = hex_encode_talloc(frame, (unsigned char *)(key.dptr), - len); - DBG_DEBUG("%s key %s\n", prefix, keystr); - TALLOC_FREE(frame); + + if (key.dsize < 1024) { + char keystr[key.dsize*2+1]; + hex_encode_buf(keystr, key.dptr, key.dsize); + DBG_DEBUG("%s key %s\n", prefix, keystr); + return; + } + + dump_data(DEBUGLEVEL, key.dptr, key.dsize); } static int db_tdb_record_destr(struct db_record* data)