commit c515dc8d0d17b9ce5e8c4f31ba2bd58c15fb90bf
parent 9ae35975402a823a420cd5efb81a1c3a76f6c4d6
Author: Nick Mathewson <nickm@torproject.org>
Date: Fri, 20 Jul 2018 11:18:11 -0400
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.
Diffstat:
2 files changed, 1 insertion(+), 6 deletions(-)
diff --git a/src/lib/log/util_bug.c b/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;
diff --git a/src/lib/log/util_bug.h b/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__)