Fix: bogus mask on error.h PRINT types
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wed, 18 May 2016 18:04:14 +0000 (14:04 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Thu, 19 May 2016 04:04:41 +0000 (00:04 -0400)
PRINT_ERR maps to 0x1, PRINT_WARN maps to 0x2, which is fine so far to
use as masks, but PRINT_BUG maps to 0x3, which is the same as both
PRINT_ERR and PRINT_WARN, and does not make sense to use in masks with
__lttng_print:

  (type & (PRINT_WARN | PRINT_ERR | PRINT_BUG))

Fix this by ensuring PRINT_BUG has its own mask, and express all
constants as shifts to eliminate the risk of re-introducing a similar
bug in the future.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
src/common/error.h

index f2a31dfa1389bf5c176b3b9645be2c4600452d43..3ab1d46e7126ebee9e358b6c30544919e2fe4132 100644 (file)
@@ -57,13 +57,13 @@ extern int lttng_opt_verbose;
 extern int lttng_opt_mi;
 
 /* Error type. */
-#define PRINT_ERR   0x1
-#define PRINT_WARN  0x2
-#define PRINT_BUG   0x3
-#define PRINT_MSG   0x4
-#define PRINT_DBG   0x10
-#define PRINT_DBG2  0x20
-#define PRINT_DBG3  0x30
+#define PRINT_ERR   (1 << 0)
+#define PRINT_WARN  (1 << 1)
+#define PRINT_BUG   (1 << 2)
+#define PRINT_MSG   (1 << 3)
+#define PRINT_DBG   (1 << 4)
+#define PRINT_DBG2  (1 << 5)
+#define PRINT_DBG3  (1 << 6)
 
 /*
  * Macro for printing message depending on command line option and verbosity.
This page took 0.035153 seconds and 4 git commands to generate.