diff --git a/src/or/networkstatus.c b/src/or/networkstatus.c index 9d6d5abe6a..da110fdff6 100644 --- a/src/or/networkstatus.c +++ b/src/or/networkstatus.c @@ -1916,7 +1916,9 @@ getinfo_helper_networkstatus(control_connection_t *conn, } else if (!strcmp(question, "consensus/packages")) { const networkstatus_t *ns = networkstatus_get_latest_consensus(); if (ns && ns->package_lines) - *answer = smartlist_join_strings(ns->package_lines, "\n", 1, NULL); + *answer = smartlist_join_strings(ns->package_lines, "\n", 0, NULL); + else + *errmsg = "No consensus available"; return *answer ? 0 : -1; } else if (!strcmp(question, "consensus/valid-after") || !strcmp(question, "consensus/fresh-until") || @@ -1934,6 +1936,8 @@ getinfo_helper_networkstatus(control_connection_t *conn, char tbuf[ISO_TIME_LEN+1]; format_iso_time(tbuf, t); *answer = tor_strdup(tbuf); + } else { + *errmsg = "No consensus available"; } return *answer ? 0 : -1; } else { diff --git a/src/or/routerparse.c b/src/or/routerparse.c index 6f3acd0987..f7687e0e40 100644 --- a/src/or/routerparse.c +++ b/src/or/routerparse.c @@ -2630,8 +2630,8 @@ networkstatus_parse_vote_from_string(const char *s, const char **eos_out, { smartlist_t *package_lst = find_all_by_keyword(tokens, K_PACKAGE); + ns->package_lines = smartlist_new(); if (package_lst) { - ns->package_lines = smartlist_new(); SMARTLIST_FOREACH(package_lst, directory_token_t *, t, smartlist_add(ns->package_lines, tor_strdup(t->args[0]))); }