Commit 66f975e4 authored by Mike Perry's avatar Mike Perry Committed by David Goulet
Browse files

Prop#324: Free congestion control object on circ and cpath

parent 4d8c6d57
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -100,6 +100,7 @@
#include "lib/compress/compress_zlib.h"
#include "lib/compress/compress_zlib.h"
#include "lib/compress/compress_zstd.h"
#include "lib/compress/compress_zstd.h"
#include "lib/buf/buffers.h"
#include "lib/buf/buffers.h"
#include "core/or/congestion_control_common.h"


#include "core/or/ocirc_event.h"
#include "core/or/ocirc_event.h"


@@ -1143,6 +1144,8 @@ circuit_free_(circuit_t *circ)
   * hs identifier is freed. */
   * hs identifier is freed. */
  hs_circ_cleanup_on_free(circ);
  hs_circ_cleanup_on_free(circ);


  congestion_control_free(circ->ccontrol);

  if (CIRCUIT_IS_ORIGIN(circ)) {
  if (CIRCUIT_IS_ORIGIN(circ)) {
    origin_circuit_t *ocirc = TO_ORIGIN_CIRCUIT(circ);
    origin_circuit_t *ocirc = TO_ORIGIN_CIRCUIT(circ);
    mem = ocirc;
    mem = ocirc;
+2 −0
Original line number Original line Diff line number Diff line
@@ -27,6 +27,7 @@
#include "core/or/circuitbuild.h"
#include "core/or/circuitbuild.h"
#include "core/or/circuitlist.h"
#include "core/or/circuitlist.h"
#include "core/or/extendinfo.h"
#include "core/or/extendinfo.h"
#include "core/or/congestion_control_common.h"


#include "lib/crypt_ops/crypto_dh.h"
#include "lib/crypt_ops/crypto_dh.h"
#include "lib/crypt_ops/crypto_util.h"
#include "lib/crypt_ops/crypto_util.h"
@@ -165,6 +166,7 @@ cpath_free(crypt_path_t *victim)
  onion_handshake_state_release(&victim->handshake_state);
  onion_handshake_state_release(&victim->handshake_state);
  crypto_dh_free(victim->rend_dh_handshake_state);
  crypto_dh_free(victim->rend_dh_handshake_state);
  extend_info_free(victim->extend_info);
  extend_info_free(victim->extend_info);
  congestion_control_free(victim->ccontrol);


  memwipe(victim, 0xBB, sizeof(crypt_path_t)); /* poison memory */
  memwipe(victim, 0xBB, sizeof(crypt_path_t)); /* poison memory */
  tor_free(victim);
  tor_free(victim);