[tor-commits] [tor/master] Compile-time check that control_event_t.event_mask is big enough
nickm at torproject.org
nickm at torproject.org
Tue Mar 31 18:57:24 UTC 2015
commit b41a5039f1ee16ddbcb5cbef63d5ba9abf802834
Author: teor <teor2345 at gmail.com>
Date: Sun Mar 22 14:25:42 2015 +1100
Compile-time check that control_event_t.event_mask is big enough
Add a compile-time check that the number of events doesn't exceed
the capacity of control_event_t.event_mask.
---
changes/ticket15431 | 4 +++-
src/or/control.h | 4 ++++
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/changes/ticket15431 b/changes/ticket15431
index e35bab6..ea6821a 100644
--- a/changes/ticket15431
+++ b/changes/ticket15431
@@ -1,4 +1,6 @@
o Minor features (testing):
- Add unit tests for control_event_is_interesting().
- Part of ticket 15431, checks for bugs similar to 13085.
+ Add a compile-time check that the number of events doesn't exceed
+ the capacity of control_event_t.event_mask.
+ Closes ticket 15431, checks for bugs similar to 13085.
Patch by "teor".
diff --git a/src/or/control.h b/src/or/control.h
index 9b0362a..dbb80b1 100644
--- a/src/or/control.h
+++ b/src/or/control.h
@@ -166,6 +166,10 @@ void control_free_all(void);
/* If EVENT_MAX_ ever hits 0x0040, we need to make the mask into a
* different structure, as it can only handle a maximum left shift of 1<<63. */
+#if EVENT_MAX_ >= EVENT_CAPACITY_
+#error control_connection_t.event_mask has an event greater than its capacity
+#endif
+
#define EVENT_MASK_(e) (((uint64_t)1)<<(e))
#define EVENT_MASK_NONE_ ((uint64_t)0x0)
More information about the tor-commits
mailing list