summaryrefslogtreecommitdiff
path: root/lib/dbwrap
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2019-10-16 15:27:49 +0200
committerJeremy Allison <jra@samba.org>2019-11-06 20:36:34 +0000
commitd6223677bfded0aed659df4a78f318ffc180003c (patch)
tree41990f1b60d0ad8dd5c91ad60147ffc8f34591aa /lib/dbwrap
parent54d673742f3a81ecdfb98f66a928d119293697ba (diff)
downloadsamba-d6223677bfded0aed659df4a78f318ffc180003c.tar.gz
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 <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'lib/dbwrap')
-rw-r--r--lib/dbwrap/dbwrap_tdb.c20
1 files changed, 10 insertions, 10 deletions
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)