diff options
author | Nick Mathewson <nickm@torproject.org> | 2014-02-03 12:35:35 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2014-02-03 12:35:35 -0500 |
commit | 696b484d4dc2e78ff8cf0f7c512d0dc3297197d9 (patch) | |
tree | bf0545ac49ce37883c13b5958944b72ac706d6a1 /src/or | |
parent | fee7f25ff845dc9a99dac59e67fdb9517750176c (diff) | |
download | tor-696b484d4dc2e78ff8cf0f7c512d0dc3297197d9.tar tor-696b484d4dc2e78ff8cf0f7c512d0dc3297197d9.tar.gz |
Defensive programming in control_event_hs_descriptor_*
It looks to me like these functions can never get called with NULL
arguments, but better safe than sorry.
Diffstat (limited to 'src/or')
-rw-r--r-- | src/or/control.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/or/control.c b/src/or/control.c index 55a2fb779..d24b9e4ba 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -5002,7 +5002,12 @@ control_event_hs_descriptor_requested(const rend_data_t *rend_query, const char *hs_dir, const char *desc_id_base32) { - tor_assert(hs_dir); + if (!hs_dir || !rend_query || !desc_id_base32) { + log_warn(LD_BUG, "Called with rend_query==%p, " + "hs_dir==%p, desc_id_base32==%p", + rend_query, hs_dir, desc_id_base32); + return; + } send_control_event(EVENT_HS_DESC, ALL_FORMATS, "650 HS_DESC REQUESTED %s %s %s %s\r\n", rend_query->onion_address, @@ -5024,6 +5029,11 @@ control_event_hs_descriptor_receive_end(const char *action, const rend_data_t *rend_query, const char *hs_dir) { + if (!action || !rend_query || !hs_dir) { + log_warn(LD_BUG, "Called with action==%p, rend_query==%p, " + "hs_dir==%p", action, rend_query, hs_dir); + return; + } send_control_event(EVENT_HS_DESC, ALL_FORMATS, "650 HS_DESC %s %s %s %s\r\n", action, @@ -5040,7 +5050,11 @@ void control_event_hs_descriptor_received(const rend_data_t *rend_query, const char *hs_dir) { - tor_assert(hs_dir); + if (!rend_query || !hs_dir) { + log_warn(LD_BUG, "Called with rend_query==%p, hs_dir==%p", + rend_query, hs_dir); + return; + } control_event_hs_descriptor_receive_end("RECEIVED", rend_query, hs_dir); } @@ -5052,7 +5066,11 @@ void control_event_hs_descriptor_failed(const rend_data_t *rend_query, const char *hs_dir) { - tor_assert(hs_dir); + if (!rend_query || !hs_dir) { + log_warn(LD_BUG, "Called with rend_query==%p, hs_dir==%p", + rend_query, hs_dir); + return; + } control_event_hs_descriptor_receive_end("FAILED", rend_query, hs_dir); } |