hs-v3: Remove a BUG() when storing a descriptor in the client cache

It is possible in normal circumstances that  a client fetches a descriptor
that has a lower revision counter than the one in its cache. This can happen
due to HSDir desync.

Fixes #24976

Signed-off-by: David Goulet <dgoulet@torproject.org>
This commit is contained in:
David Goulet 2018-01-31 10:58:11 -05:00 committed by Nick Mathewson
parent 9bfb6fe395
commit df312b3cf6
2 changed files with 7 additions and 2 deletions

5
changes/bug24976 Normal file
View File

@ -0,0 +1,5 @@
o Minor bugfixes (hidden service v3 client):
- Remove a BUG() statement which can be triggered in normal circumstances
where a client fetches a descriptor that has a lower revision counter
than the one in its cache. This can happen due to HSDir desync. Fixes
bug 24976; bugfix on 0.3.2.1-alpha.

View File

@ -624,8 +624,8 @@ cache_store_as_client(hs_cache_client_descriptor_t *client_desc)
if (cache_entry != NULL) {
/* If we have an entry in our cache that has a revision counter greater
* than the one we just fetched, discard the one we fetched. */
if (BUG(cache_entry->desc->plaintext_data.revision_counter >
client_desc->desc->plaintext_data.revision_counter)) {
if (cache_entry->desc->plaintext_data.revision_counter >
client_desc->desc->plaintext_data.revision_counter) {
cache_client_desc_free(client_desc);
goto done;
}