[tor-commits] [tor/maint-0.2.4] Add a 30-day maximum on user-supplied MaxCircuitDirtiness
nickm at torproject.org
nickm at torproject.org
Sun Aug 25 04:33:47 UTC 2013
commit af7970b6bcc8e546cf15e943f1bec749cce18eed
Author: Nick Mathewson <nickm at torproject.org>
Date: Wed Aug 21 11:35:00 2013 -0400
Add a 30-day maximum on user-supplied MaxCircuitDirtiness
Fix for bug 9543.
---
changes/bug9543 | 4 ++++
src/or/config.c | 10 ++++++++++
2 files changed, 14 insertions(+)
diff --git a/changes/bug9543 b/changes/bug9543
new file mode 100644
index 0000000..753947f
--- /dev/null
+++ b/changes/bug9543
@@ -0,0 +1,4 @@
+ o Minor bugfixes:
+ - Avoid overflows when the user sets MaxCircuitDirtiness to a
+ ridiculously high value, by imposing a (ridiculously high) 30-day
+ maximum on MaxCircuitDirtiness.
diff --git a/src/or/config.c b/src/or/config.c
index 72ceea3..793fd55 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -2266,6 +2266,10 @@ compute_publishserverdescriptor(or_options_t *options)
* will generate too many circuits and potentially overload the network. */
#define MIN_MAX_CIRCUIT_DIRTINESS 10
+/** Highest allowable value for MaxCircuitDirtiness: prevents time_t
+ * overflows. */
+#define MAX_MAX_CIRCUIT_DIRTINESS (30*24*60*60)
+
/** Lowest allowable value for CircuitStreamTimeout; if this is too low, Tor
* will generate too many circuits and potentially overload the network. */
#define MIN_CIRCUIT_STREAM_TIMEOUT 10
@@ -2786,6 +2790,12 @@ options_validate(or_options_t *old_options, or_options_t *options,
options->MaxCircuitDirtiness = MIN_MAX_CIRCUIT_DIRTINESS;
}
+ if (options->MaxCircuitDirtiness > MAX_MAX_CIRCUIT_DIRTINESS) {
+ log_warn(LD_CONFIG, "MaxCircuitDirtiness option is too high; "
+ "setting to %d days.", MAX_MAX_CIRCUIT_DIRTINESS/86400);
+ options->MaxCircuitDirtiness = MAX_MAX_CIRCUIT_DIRTINESS;
+ }
+
if (options->CircuitStreamTimeout &&
options->CircuitStreamTimeout < MIN_CIRCUIT_STREAM_TIMEOUT) {
log_warn(LD_CONFIG, "CircuitStreamTimeout option is too short; "
More information about the tor-commits
mailing list