diff options
| -rw-r--r-- | source3/tdb/tdbtool.c | 18 | 
1 files changed, 14 insertions, 4 deletions
diff --git a/source3/tdb/tdbtool.c b/source3/tdb/tdbtool.c index 221ef4a5f2..7369fe8d80 100644 --- a/source3/tdb/tdbtool.c +++ b/source3/tdb/tdbtool.c @@ -251,16 +251,26 @@ static void show_tdb(void)  	}  	key.dptr = k; -/*	key.dsize = strlen(k)+1;*/ -	key.dsize = strlen(k); +	key.dsize = strlen(k)+1;  	dbuf = tdb_fetch(tdb, key);  	if (!dbuf.dptr) { -		terror("fetch failed"); -		return; +		/* maybe it is non-NULL terminated key? */ +		key.dsize = strlen(k);  +		dbuf = tdb_fetch(tdb, key); +		 +		if ( !dbuf.dptr ) { +			terror("fetch failed"); +			return; +		}  	} +	  	/* printf("%s : %*.*s\n", k, (int)dbuf.dsize, (int)dbuf.dsize, dbuf.dptr); */  	print_rec(tdb, key, dbuf, NULL); +	 +	free( dbuf.dptr ); +	 +	return;  }  static void delete_tdb(void)  | 
