aboutsummaryrefslogtreecommitdiff
path: root/src/lib/log
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2019-07-08 13:41:35 -0400
committerNick Mathewson <nickm@torproject.org>2019-07-08 13:41:35 -0400
commit4512578e49b187075d4e8b4d07a0c921a15d5135 (patch)
tree9661647e7aa16691f4b1cf4727ba869021c58100 /src/lib/log
parent09c692e72b56e08668ae5f42416741ebd6edc404 (diff)
downloadtor-4512578e49b187075d4e8b4d07a0c921a15d5135.tar.gz
tor-4512578e49b187075d4e8b4d07a0c921a15d5135.zip
Add a compile-time assertion to prevent a recurrence of 31080.
Diffstat (limited to 'src/lib/log')
-rw-r--r--src/lib/log/log.c2
-rw-r--r--src/lib/log/log.h2
2 files changed, 4 insertions, 0 deletions
diff --git a/src/lib/log/log.c b/src/lib/log/log.c
index c68f335da6..756eb2a973 100644
--- a/src/lib/log/log.c
+++ b/src/lib/log/log.c
@@ -1275,6 +1275,8 @@ static const char *domain_list[] = {
CTASSERT(ARRAY_LENGTH(domain_list) == N_LOGGING_DOMAINS + 1);
+CTASSERT((UINT64_C(1)<<(N_LOGGING_DOMAINS-1)) < LOWEST_RESERVED_LD_FLAG_);
+
/** Return a bitmask for the log domain for which <b>domain</b> is the name,
* or 0 if there is no such name. */
static log_domain_mask_t
diff --git a/src/lib/log/log.h b/src/lib/log/log.h
index 801bafa968..88e4ad8d61 100644
--- a/src/lib/log/log.h
+++ b/src/lib/log/log.h
@@ -118,6 +118,8 @@
#define LD_MESG (UINT64_C(1)<<29)
#define N_LOGGING_DOMAINS 30
+/** First bit that is reserved in log_domain_mask_t for non-domain flags. */
+#define LOWEST_RESERVED_LD_FLAG_ (UINT64_C(1)<<61)
#ifdef TOR_UNIT_TESTS
/** This log message should not be intercepted by mock_saving_logv */
#define LD_NO_MOCK (UINT64_C(1)<<61)