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>
Fri, 20 May 2016 20:40:27 +0000 (16:40 -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 89b3363ce1c95d88ef64420ff40222f088222633..1ae1c8d3e5a7c6bb591a10612b01ed8256927875 100644 (file)
@@ -52,13 +52,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.026139 seconds and 4 git commands to generate.