diff options
author | Sebastian Hahn <sebastian@torproject.org> | 2010-03-21 06:03:13 +0100 |
---|---|---|
committer | Sebastian Hahn <sebastian@torproject.org> | 2010-03-29 22:25:37 +0200 |
commit | cae769d646e721efff3c286a2c46769680dc01f5 (patch) | |
tree | c4abb47f1a5ad3e284fbc0db6572f8cda61c9d58 | |
parent | 28cda33299d2654ff43b7174c9e71fb64ad53b3b (diff) | |
download | tor-cae769d646e721efff3c286a2c46769680dc01f5.tar tor-cae769d646e721efff3c286a2c46769680dc01f5.tar.gz |
Segfault less during consensus generation without params
If no authority votes on any params, Tor authorities segfault when
trying to make a new consensus from the votes. Let's change that.
-rw-r--r-- | changes/dont_segfault_while_making_consensus_without_params | 5 | ||||
-rw-r--r-- | src/or/dirvote.c | 10 |
2 files changed, 11 insertions, 4 deletions
diff --git a/changes/dont_segfault_while_making_consensus_without_params b/changes/dont_segfault_while_making_consensus_without_params new file mode 100644 index 000000000..e0bcd4086 --- /dev/null +++ b/changes/dont_segfault_while_making_consensus_without_params @@ -0,0 +1,5 @@ + o Minor bugfixes: + - When none of the authorities vote on any params, Tor segfaults when + trying to make the consensus from the votes. This is currently + not critical, because authorities do include params in their votes. + Bugfix on 0.2.2.10-alpha, fixes bug 1322. diff --git a/src/or/dirvote.c b/src/or/dirvote.c index ecf236e8f..30e340c73 100644 --- a/src/or/dirvote.c +++ b/src/or/dirvote.c @@ -1757,10 +1757,12 @@ networkstatus_compute_consensus(smartlist_t *votes, // Parse params, extract BW_WEIGHT_SCALE if present // DO NOT use consensus_param_bw_weight_scale() in this code! // The consensus is not formed yet! - if (strcmpstart(params, "bwweightscale=") == 0) - bw_weight_param = params; - else - bw_weight_param = strstr(params, " bwweightscale="); + if (params) { + if (strcmpstart(params, "bwweightscale=") == 0) + bw_weight_param = params; + else + bw_weight_param = strstr(params, " bwweightscale="); + } if (bw_weight_param) { int ok=0; |