Commit 8731a4e1 authored by Nick Mathewson's avatar Nick Mathewson 🤹
Browse files

Avoid segfault when reading state file from ancient tor

If s_values is null in rep_hist_load_bwhist_state_section, we would
call smartlist_len() on it, and die.

Fixes bug 6801.
parent 97dbff51
Loading
Loading
Loading
Loading

changes/bug6801

0 → 100644
+5 −0
Original line number Diff line number Diff line
  o Minor bugfixes:
    - Avoid segfault when starting up having run with an extremely old
      version of Tor and parsing its state file. Fixes bug 6801; bugfix on
      0.2.2.23-alpha.
+2 −1
Original line number Diff line number Diff line
@@ -1675,7 +1675,8 @@ rep_hist_load_bwhist_state_section(bw_array_t *b,

  uint64_t v, mv;
  int i,ok,ok_m;
  int have_maxima = (smartlist_len(s_values) == smartlist_len(s_maxima));
  int have_maxima = s_maxima && s_values &&
    (smartlist_len(s_values) == smartlist_len(s_maxima));

  if (s_values && s_begins >= now - NUM_SECS_BW_SUM_INTERVAL*NUM_TOTALS) {
    start = s_begins - s_interval*(smartlist_len(s_values));