diff --git a/changes/bug6774 b/changes/bug6774 new file mode 100644 index 0000000000..0c137fd678 --- /dev/null +++ b/changes/bug6774 @@ -0,0 +1,4 @@ + o Minor bugfixes: + - Avoid crashing on a malformed state file where EntryGuardPathBias + precedes EntryGuard. Fix for bug 6774; bugfix on 0.2.3.17-beta. + diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c index 2a449b0cc0..87a3fa67b1 100644 --- a/src/or/circuitbuild.c +++ b/src/or/circuitbuild.c @@ -4904,6 +4904,12 @@ entry_guards_parse_state(or_state_t *state, int set, char **msg) const or_options_t *options = get_options(); unsigned hop_cnt, success_cnt; + if (!node) { + *msg = tor_strdup("Unable to parse entry nodes: " + "EntryGuardPathBias without EntryGuard"); + break; + } + if (tor_sscanf(line->value, "%u %u", &success_cnt, &hop_cnt) != 2) { log_warn(LD_GENERAL, "Unable to parse guard path bias info: " "Misformated EntryGuardPathBias %s", escaped(line->value));