commit 2b39c927c7f2c13f17d9883371a12131b6c6df40 Author: Nick Mathewson nickm@torproject.org Date: Tue Sep 6 20:59:07 2016 -0400
Add !(...) to BUG() log messages
They use the same code as reporting assertion failures, so we should invert the sense of what we're "asserting".
Fixes bug 20093. --- changes/bug20093 | 4 ++++ 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 0000000..ef32601 --- /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 3f77e0a..8b85d47 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
tor-commits@lists.torproject.org