Commit 0a77e5f1 authored by George Kadianakis's avatar George Kadianakis
Browse files

Merge branch 'tor-github/pr/1341'

parents 09769779 4bbefc2a
Loading
Loading
Loading
Loading

changes/bug30916

0 → 100644
+4 −0
Original line number Diff line number Diff line
  o Minor bugfixes (relay):
    - Avoid crashing when starting with a corrupt keys directory where
      the old ntor key and the new ntor key are identical. Fixes bug 30916;
      bugfix on 0.2.4.8-alpha.
+8 −10
Original line number Diff line number Diff line
@@ -284,19 +284,17 @@ construct_ntor_key_map(void)
{
  di_digest256_map_t *m = NULL;

  if (!fast_mem_is_zero((const char*)
                       curve25519_onion_key.pubkey.public_key,
                       CURVE25519_PUBKEY_LEN)) {
    dimap_add_entry(&m,
                    curve25519_onion_key.pubkey.public_key,
  const uint8_t *cur_pk = curve25519_onion_key.pubkey.public_key;
  const uint8_t *last_pk = last_curve25519_onion_key.pubkey.public_key;

  if (!fast_mem_is_zero((const char *)cur_pk, CURVE25519_PUBKEY_LEN)) {
    dimap_add_entry(&m, cur_pk,
                    tor_memdup(&curve25519_onion_key,
                               sizeof(curve25519_keypair_t)));
  }
  if (!fast_mem_is_zero((const char*)
                          last_curve25519_onion_key.pubkey.public_key,
                       CURVE25519_PUBKEY_LEN)) {
    dimap_add_entry(&m,
                    last_curve25519_onion_key.pubkey.public_key,
  if (!fast_mem_is_zero((const char*)last_pk, CURVE25519_PUBKEY_LEN) &&
      tor_memneq(cur_pk, last_pk, CURVE25519_PUBKEY_LEN)) {
    dimap_add_entry(&m, last_pk,
                    tor_memdup(&last_curve25519_onion_key,
                               sizeof(curve25519_keypair_t)));
  }