diff options
author | Michael Adam <obnox@samba.org> | 2008-03-28 15:49:13 +0100 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2008-03-28 16:34:51 +0100 |
commit | 9644b6cb50ec01c04a0d6ab17a8e39054fd8b0f8 (patch) | |
tree | d000e447b508b5a8c282957f5b7921e768da0884 /source3/lib/debug.c | |
parent | cc2f5fd1b5aa7e7a7277557edfd4b94b0d10661d (diff) | |
download | samba-9644b6cb50ec01c04a0d6ab17a8e39054fd8b0f8.tar.gz samba-9644b6cb50ec01c04a0d6ab17a8e39054fd8b0f8.tar.xz samba-9644b6cb50ec01c04a0d6ab17a8e39054fd8b0f8.zip |
Add a talloc context parameter to current_timestring() to fix memleaks.
current_timestring used to return a string talloced to talloc_tos().
When called by DEBUG from a TALLOC_FREE, this produced messages
"no talloc stackframe around, leaking memory". For example when
used from net conf.
This also adds a temporary talloc context to alloc_sub_basic().
For this purpose, the exit strategy is slightly altered: a common
exit point is used for success and failure.
Michael
(This used to be commit 16b5800d4e3a8b88bac67b2550d14e0aaaa302a9)
Diffstat (limited to 'source3/lib/debug.c')
-rw-r--r-- | source3/lib/debug.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/source3/lib/debug.c b/source3/lib/debug.c index c4a0d1b47be..a76a8dbf539 100644 --- a/source3/lib/debug.c +++ b/source3/lib/debug.c @@ -1029,12 +1029,14 @@ bool dbghdr(int level, int cls, const char *file, const char *func, int line) /* Print it all out at once to prevent split syslog output. */ if( lp_debug_prefix_timestamp() ) { (void)Debug1( "[%s, %2d%s] ", - current_timestring(lp_debug_hires_timestamp()), level, - header_str); + current_timestring(debug_ctx(), + lp_debug_hires_timestamp()), + level, header_str); } else { (void)Debug1( "[%s, %2d%s] %s:%s(%d)\n", - current_timestring(lp_debug_hires_timestamp()), level, - header_str, file, func, line ); + current_timestring(debug_ctx(), + lp_debug_hires_timestamp()), + level, header_str, file, func, line ); } } |