Commit 959c4963 authored by Nick Mathewson's avatar Nick Mathewson 🦀
Browse files

r15913@catbus: nickm | 2007-10-18 10:22:19 -0400

 Fix segfault in init_keys()


svn:r12021
parent 8f21a0a0
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -510,15 +510,16 @@ init_keys(void)
  /* 5. Dump fingerprint to 'fingerprint' */
  keydir = get_datadir_fname("fingerprint");
  log_info(LD_GENERAL,"Dumping fingerprint to \"%s\"...",keydir);
  tor_free(keydir);
  if (crypto_pk_get_fingerprint(get_identity_key(), fingerprint, 1)<0) {
    log_err(LD_GENERAL,"Error computing fingerprint");
    tor_free(keydir);
    return -1;
  }
  tor_assert(strlen(options->Nickname) <= MAX_NICKNAME_LEN);
  if (tor_snprintf(fingerprint_line, sizeof(fingerprint_line),
                   "%s %s\n",options->Nickname, fingerprint) < 0) {
    log_err(LD_GENERAL,"Error writing fingerprint line");
    tor_free(keydir);
    return -1;
  }
  /* Check whether we need to write the fingerprint file. */
@@ -528,10 +529,12 @@ init_keys(void)
  if (!cp || strcmp(cp, fingerprint_line)) {
    if (write_str_to_file(keydir, fingerprint_line, 0)) {
      log_err(LD_FS, "Error writing fingerprint line to file");
      tor_free(keydir);
      return -1;
    }
  }
  tor_free(cp);
  tor_free(keydir);

  log(LOG_NOTICE, LD_GENERAL,
      "Your Tor server's identity key fingerprint is '%s %s'",