Browse Source

Remove over-cleverness from our coverity BUG() definition.

Our previous definition implied that code would never keep running
if a BUG occurred (which it does), and that BUG(x) might be true
even if x was false (which it can't be).

Closes ticket 26890. Bugfix on 0.3.1.4-alpha.
Nick Mathewson 5 years ago
parent
commit
c515dc8d0d
2 changed files with 1 additions and 6 deletions
  1. 0 4
      src/lib/log/util_bug.c
  2. 1 2
      src/lib/log/util_bug.h

+ 0 - 4
src/lib/log/util_bug.c

@@ -20,10 +20,6 @@
 
 #include <string.h>
 
-#ifdef __COVERITY__
-int bug_macro_deadcode_dummy__ = 0;
-#endif
-
 #ifdef TOR_UNIT_TESTS
 static void (*failed_assertion_cb)(void) = NULL;
 static int n_bugs_to_capture = 0;

+ 1 - 2
src/lib/log/util_bug.h

@@ -86,13 +86,12 @@
  */
 
 #ifdef __COVERITY__
-extern int bug_macro_deadcode_dummy__;
 #undef BUG
 // Coverity defines this in global headers; let's override it.  This is a
 // magic coverity-only preprocessor thing.
 // We use this "deadcode_dummy__" trick to prevent coverity from
 // complaining about unreachable bug cases.
-#nodef BUG(x) ((x)?(__coverity_panic__(),1):(0+bug_macro_deadcode_dummy__))
+#nodef BUG(x) (x)
 #endif /* defined(__COVERITY__) */
 
 #if defined(__COVERITY__) || defined(__clang_analyzer__)