diff options
-rw-r--r-- | changes/bug20093 | 4 | ||||
-rw-r--r-- | src/common/util_bug.h | 13 |
2 files changed, 12 insertions, 5 deletions
diff --git a/changes/bug20093 b/changes/bug20093 new file mode 100644 index 0000000000..ef3260143b --- /dev/null +++ b/changes/bug20093 @@ -0,0 +1,4 @@ + o Minor bugfixes (logging): + - When logging a message from the BUG() macro, be explicit about what + we were asserting. Previously we were confusing what we were asserting + with what the bug was. Fixes bug 20093; bugfix on 0.2.9.1-alpha. diff --git a/src/common/util_bug.h b/src/common/util_bug.h index 3f77e0a99e..8b85d472b6 100644 --- a/src/common/util_bug.h +++ b/src/common/util_bug.h @@ -65,7 +65,8 @@ #define tor_assert_nonfatal_once(cond) tor_assert((cond)) #define BUG(cond) \ (PREDICT_UNLIKELY(cond) ? \ - (tor_assertion_failed_(SHORT_FILE__,__LINE__,__func__,#cond), abort(), 1) \ + (tor_assertion_failed_(SHORT_FILE__,__LINE__,__func__,"!("#cond")"), \ + abort(), 1) \ : 0) #elif defined(TOR_UNIT_TESTS) && defined(DISABLE_ASSERTS_IN_UNIT_TESTS) #define tor_assert_nonfatal_unreached() STMT_NIL @@ -98,18 +99,19 @@ STMT_END #define BUG(cond) \ (PREDICT_UNLIKELY(cond) ? \ - (tor_bug_occurred_(SHORT_FILE__,__LINE__,__func__,#cond,0), 1) \ + (tor_bug_occurred_(SHORT_FILE__,__LINE__,__func__,"!("#cond")",0), 1) \ : 0) #endif #ifdef __GNUC__ #define IF_BUG_ONCE__(cond,var) \ - if (( { \ + if (( { \ static int var = 0; \ int bool_result = (cond); \ if (PREDICT_UNLIKELY(bool_result) && !var) { \ var = 1; \ - tor_bug_occurred_(SHORT_FILE__, __LINE__, __func__, #cond, 1); \ + tor_bug_occurred_(SHORT_FILE__, __LINE__, __func__, \ + "!("#cond")", 1); \ } \ PREDICT_UNLIKELY(bool_result); } )) #else @@ -118,7 +120,8 @@ if (PREDICT_UNLIKELY(cond)) ? \ (var ? 1 : \ (var=1, \ - tor_bug_occurred_(SHORT_FILE__, __LINE__, __func__, #cond, 1), \ + tor_bug_occurred_(SHORT_FILE__, __LINE__, __func__, \ + "!("#cond")", 1), \ 1)) \ : 0) #endif |