Commit 2d6d5db2 authored by Nick Mathewson's avatar Nick Mathewson 🐘
Browse files

Defensive programming: clear rs_out between iterations.

I can't currently find a bug here, but there are a couple of
near-misses.  Addresses ticket 6514; reported pseudonymously on
IRC.
parent 122c8efb
Loading
Loading
Loading
Loading

changes/bug6514

0 → 100644
+5 −0
Changes for changes/bug6514: 5 added lines, 0 removed lines.
Original line number Diff line number Diff line
  o Minor bugfixes:
    - Add a (probably redundant) memory clear between iterations of
      the router status voting loop, to prevent future coding errors
      where data might leak between iterations of the loop. Resolves
      ticket 6514.
+1 −0
Changes for src/or/dirvote.c: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -1752,6 +1752,7 @@ networkstatus_compute_consensus(smartlist_t *votes,
      rs = compute_routerstatus_consensus(matching_descs, consensus_method,
                                          microdesc_digest);
      /* Copy bits of that into rs_out. */
      memset(&rs_out, 0, sizeof(rs_out));
      tor_assert(fast_memeq(lowest_id, rs->status.identity_digest,DIGEST_LEN));
      memcpy(rs_out.identity_digest, lowest_id, DIGEST_LEN);
      memcpy(rs_out.descriptor_digest, rs->status.descriptor_digest,