mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 13:13:44 +01:00
When making sure digest256 matches in ei, look at sd, not ri.
The routerinfo we pass to routerinfo_incompatible_with_extrainfo is the latest routerinfo for the relay. The signed_descriptor_t, on the other hand, is the signed_descriptor_t that corresponds to the extrainfo. That means we should be checking the digest256 match with that signed_descriptor_t, not with the routerinfo. Fixes bug 17150 (and 19017); bugfix on 0.2.7.2-alpha.
This commit is contained in:
parent
44da47d3c1
commit
7d1eb0d570
6
changes/bug17150
Normal file
6
changes/bug17150
Normal file
@ -0,0 +1,6 @@
|
||||
o Minor bugfixes (directory warnings):
|
||||
- When fetching extrainfo documents, compare their SHA256 digests
|
||||
with the routerinfo that led us to fetch them, rather than
|
||||
with the most recent routerinfo. Otherwise we generate many
|
||||
spurious warnings about mismatches. Fixes bug 17150; bugfix
|
||||
on 0.2.7.2-alpha.
|
@ -4926,9 +4926,9 @@ routerinfo_incompatible_with_extrainfo(const routerinfo_t *ri,
|
||||
/* Set digest256_matches to 1 if the digest is correct, or if no
|
||||
* digest256 was in the ri. */
|
||||
digest256_matches = tor_memeq(ei->digest256,
|
||||
ri->cache_info.extra_info_digest256, DIGEST256_LEN);
|
||||
sd->extra_info_digest256, DIGEST256_LEN);
|
||||
digest256_matches |=
|
||||
tor_mem_is_zero(ri->cache_info.extra_info_digest256, DIGEST256_LEN);
|
||||
tor_mem_is_zero(sd->extra_info_digest256, DIGEST256_LEN);
|
||||
|
||||
/* The identity must match exactly to have been generated at the same time
|
||||
* by the same router. */
|
||||
|
Loading…
Reference in New Issue
Block a user