[tor-commits] [tor/master] Add !(...) to BUG() log messages

nickm at torproject.org nickm at torproject.org
Wed Sep 7 01:01:57 UTC 2016


commit 2b39c927c7f2c13f17d9883371a12131b6c6df40
Author: Nick Mathewson <nickm at 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





More information about the tor-commits mailing list