tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

commit 92fa5239fc357c2078bf613a875c986a3bd97710
parent 3b2525c375bdd07abb31aeb498c079111e8c3595
Author: teor <teor@torproject.org>
Date:   Mon, 21 Oct 2019 13:49:44 +1000

control/getinfo: Use standard error handling

Use BUG() for coding errors, and `< 0` for error checks.

Fix to 31684.

Diffstat:
Msrc/feature/control/control_getinfo.c | 9++++-----
1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/src/feature/control/control_getinfo.c b/src/feature/control/control_getinfo.c @@ -333,9 +333,8 @@ getinfo_helper_current_consensus(consensus_flavor_t flavor, const char** errmsg) { const char *flavor_name = networkstatus_get_flavor_name(flavor); - if (!strcmp(flavor_name, "??")) { - *errmsg = "Could not open cached consensus. " - "Make sure FetchUselessDescriptors is set to 1."; + if (BUG(!strcmp(flavor_name, "??"))) { + *errmsg = "Internal error: unrecognized flavor name."; return -1; } if (we_want_to_fetch_flavor(get_options(), flavor)) { @@ -615,14 +614,14 @@ getinfo_helper_dir(control_connection_t *control_conn, } else if (!strcmp(question, "dir/status-vote/current/consensus")) { int consensus_result = getinfo_helper_current_consensus(FLAV_NS, answer, errmsg); - if (consensus_result == -1) { + if (consensus_result < 0) { return -1; } } else if (!strcmp(question, "dir/status-vote/current/consensus-microdesc")) { int consensus_result = getinfo_helper_current_consensus(FLAV_MICRODESC, answer, errmsg); - if (consensus_result == -1) { + if (consensus_result < 0) { return -1; } } else if (!strcmp(question, "network-status")) { /* v1 */