diff options
-rw-r--r-- | changes/dirvote_null_deref | 4 | ||||
-rw-r--r-- | src/or/dirvote.c | 6 |
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; |