aboutsummaryrefslogtreecommitdiff
path: root/src/or
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2014-02-03 12:35:35 -0500
committerNick Mathewson <nickm@torproject.org>2014-02-03 12:35:35 -0500
commit696b484d4dc2e78ff8cf0f7c512d0dc3297197d9 (patch)
treebf0545ac49ce37883c13b5958944b72ac706d6a1 /src/or
parentfee7f25ff845dc9a99dac59e67fdb9517750176c (diff)
downloadtor-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.c24
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);
}