Commit 136d4e57 authored by Roger Dingledine's avatar Roger Dingledine
Browse files

prefer tor_free to free

plus complain more loudly when we fail to parse a dir we just fetched


svn:r2401
parent 6ed095b1
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -124,7 +124,7 @@ static void circuit_free(circuit_t *circ) {
  }

  memset(circ, 0xAA, sizeof(circuit_t)); /* poison memory */
  free(circ);
  tor_free(circ);
}

/** Deallocate space associated with the linked list <b>cpath</b>. */
@@ -158,7 +158,7 @@ void circuit_free_cpath_node(crypt_path_t *victim) {
    crypto_free_digest_env(victim->b_digest);
  if(victim->handshake_state)
    crypto_dh_free(victim->handshake_state);
  free(victim);
  tor_free(victim);
}

/** Return a circ such that:
+3 −3
Original line number Diff line number Diff line
@@ -114,9 +114,9 @@ static void config_free_lines(struct config_line_t *front) {
    tmp = front;
    front = tmp->next;

    free(tmp->key);
    free(tmp->value);
    free(tmp);
    tor_free(tmp->key);
    tor_free(tmp->value);
    tor_free(tmp);
  }
}

+1 −1
Original line number Diff line number Diff line
@@ -158,7 +158,7 @@ void connection_free(connection_t *conn) {
    tor_close_socket(conn->s);
  }
  memset(conn, 0xAA, sizeof(connection_t)); /* poison memory */
  free(conn);
  tor_free(conn);
}

/** Call connection_free() on every connection in our array.
+7 −7
Original line number Diff line number Diff line
@@ -400,7 +400,7 @@ connection_dir_client_reached_eof(connection_t *conn)
  if(parse_http_response(headers, &status_code, NULL, &date_header,
                         &compression) < 0) {
    log_fn(LOG_WARN,"Unparseable headers. Closing.");
    free(body); free(headers);
    tor_free(body); tor_free(headers);
    return -1;
  }
  if (date_header > 0) {
@@ -433,17 +433,17 @@ connection_dir_client_reached_eof(connection_t *conn)
    log_fn(LOG_INFO,"Received directory (size %d):\n%s", body_len, body);
    if(status_code == 503 || body_len == 0) {
      log_fn(LOG_INFO,"Empty directory. Ignoring.");
      free(body); free(headers);
      tor_free(body); tor_free(headers);
      return 0;
    }
    if(status_code != 200) {
      log_fn(LOG_WARN,"Received http status code %d from dirserver. Failing.",
             status_code);
      free(body); free(headers);
      tor_free(body); tor_free(headers);
      return -1;
    }
    if(router_load_routerlist_from_directory(body, NULL) < 0){
      log_fn(LOG_INFO,"...but parsing failed. Ignoring.");
      log_fn(LOG_WARN,"I failed to parse the directory I fetched from %s:%d. Ignoring.", conn->address, conn->port);
    } else {
      log_fn(LOG_INFO,"updated routers.");
    }
@@ -458,12 +458,12 @@ connection_dir_client_reached_eof(connection_t *conn)
    if(status_code != 200) {
      log_fn(LOG_WARN,"Received http status code %d from dirserver. Failing.",
             status_code);
      free(body); free(headers);
      tor_free(body); tor_free(headers);
      return -1;
    }
    if (!(rrs = router_parse_runningrouters(body))) {
      log_fn(LOG_WARN, "Can't parse runningrouters list");
      free(body); free(headers);
      tor_free(body); tor_free(headers);
      return -1;
    }
    router_get_routerlist(&rl);
@@ -526,7 +526,7 @@ connection_dir_client_reached_eof(connection_t *conn)
        break;
    }
  }
  free(body); free(headers);
  tor_free(body); tor_free(headers);
  return 0;
}

+3 −3
Original line number Diff line number Diff line
@@ -275,7 +275,7 @@ static void free_descriptor_entry(descriptor_entry_t *desc)
  tor_free(desc->descriptor);
  tor_free(desc->nickname);
  routerinfo_free(desc->router);
  free(desc);
  tor_free(desc);
}

/** Release all storage that the dirserv is holding for server
@@ -594,7 +594,7 @@ dirserv_dump_directory_to_string(char *s, unsigned int maxlen,
           "running-routers %s\n\n",
           published, options.RecommendedVersions, cp);

  free(cp);
  tor_free(cp);
  i = strlen(s);
  cp = s+i;

@@ -749,7 +749,7 @@ static int dirserv_regenerate_directory(void)
    tor_cleanup();
    exit(0);
  }
  free(new_directory);
  tor_free(new_directory);
  if(get_data_directory(&options)) {
    snprintf(filename,sizeof(filename),"%s/cached-directory", get_data_directory(&options));
    if(write_str_to_file(filename,the_directory,0) < 0) {
Loading