ack, review only/Thanks HansN
On 06/08/2018 05:12 AM, Gary Lee wrote:
If trace is enabled after the last TRACE() statement is run, but
*before* ~Trace() is called, then _file is left as nullptr when
logtrace_output() is called in ~Trace(). This will segfault.
---
src/base/logtrace.h | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/src/base/logtrace.h b/src/base/logtrace.h
index 9b20da82d..69379766e 100644
--- a/src/base/logtrace.h
+++ b/src/base/logtrace.h
@@ -175,7 +175,11 @@ extern void log_output(const char *file, unsigned line,
unsigned priority,
class Trace {
public:
- Trace() {}
+ Trace() = delete;
+ Trace(const char *file, const char *function) {
+ file_ = file;
+ function_ = function;
+ }
~Trace() {
if (!trace_leave_called && is_logtrace_enabled(CAT_TRACE_LEAVE)) {
va_list ap{};
@@ -212,11 +216,11 @@ class Trace {
};
#define TRACE_ENTER() \
- Trace t_; \
+ Trace t_(__FILE__, __FUNCTION__); \
t_.trace(__FILE__, __FUNCTION__, __LINE__, CAT_TRACE_ENTER, "%s ", \
__FUNCTION__)
#define TRACE_ENTER2(format, args...) \
- Trace t_; \
+ Trace t_(__FILE__, __FUNCTION__); \
t_.trace(__FILE__, __FUNCTION__, __LINE__, CAT_TRACE_ENTER, "%s: " format, \
__FUNCTION__, ##args)
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel