aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changes/dirvote_null_deref4
-rw-r--r--src/or/dirvote.c6
2 files changed, 7 insertions, 3 deletions
diff --git a/changes/dirvote_null_deref b/changes/dirvote_null_deref
new file mode 100644
index 000000000..65dc519f5
--- /dev/null
+++ b/changes/dirvote_null_deref
@@ -0,0 +1,4 @@
+ o Minor bugfixes:
+ - Fix a potential null-pointer dereference while computing a consensus.
+ Bugfix on tor-0.2.0.3-alpha, found with the help of clang's analyzer.
+
diff --git a/src/or/dirvote.c b/src/or/dirvote.c
index db2eaf0f4..750c649f5 100644
--- a/src/or/dirvote.c
+++ b/src/or/dirvote.c
@@ -444,9 +444,9 @@ compute_routerstatus_consensus(smartlist_t *votes, int consensus_method,
if (cur && !compare_vote_rs(cur, rs)) {
++cur_n;
} else {
- if (cur_n > most_n ||
- (cur && cur_n == most_n &&
- cur->status.published_on > most_published)) {
+ if (cur && (cur_n > most_n ||
+ (cur_n == most_n &&
+ cur->status.published_on > most_published))) {
most = cur;
most_n = cur_n;
most_published = cur->status.published_on;