Commit f3032744 authored by Sebastian Hahn's avatar Sebastian Hahn
Browse files

Fix a rare memleak during stats writing

If rep_hist_buffer_stats_write() was called unitinitalized, we'd leak
memory.
parent 680646e0
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -5,4 +5,5 @@
    - Add some forgotten return value checks during unit tests. Found
      by coverity.
    - Don't use 1-bit wide signed bit fields. Found by coverity.
    - Fix a rare memory leak during stats writing. Found by coverity.
+4 −2
Original line number Diff line number Diff line
@@ -2451,7 +2451,7 @@ rep_hist_buffer_stats_write(time_t now)
  int processed_cells[SHARES], circs_in_share[SHARES],
      number_of_circuits, i;
  double queued_cells[SHARES], time_in_queue[SHARES];
  smartlist_t *str_build = smartlist_create();
  smartlist_t *str_build = NULL;
  char *str = NULL, *buf = NULL;
  circuit_t *circ;

@@ -2460,6 +2460,8 @@ rep_hist_buffer_stats_write(time_t now)
  if (start_of_buffer_stats_interval + WRITE_STATS_INTERVAL > now)
    goto done; /* Not ready to write */

  str_build = smartlist_create();

  /* add current circuits to stats */
  for (circ = _circuit_get_global_list(); circ; circ = circ->next)
    rep_hist_buffer_stats_add_circ(circ, now);