diff options
Diffstat (limited to 'src/or/rendservice.c')
-rw-r--r-- | src/or/rendservice.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/or/rendservice.c b/src/or/rendservice.c index 0e05dc23f7..1b098804bc 100644 --- a/src/or/rendservice.c +++ b/src/or/rendservice.c @@ -254,6 +254,7 @@ rend_config_services(or_options_t *options, int validate_only) log_warn(LD_CONFIG, "Got multiple HiddenServiceNodes lines for a single " "service."); + rend_service_free(service); return -1; } service->intro_prefer_nodes = tor_strdup(line->value); @@ -263,6 +264,7 @@ rend_config_services(or_options_t *options, int validate_only) log_warn(LD_CONFIG, "Got multiple HiddenServiceExcludedNodes lines for " "a single service."); + rend_service_free(service); return -1; } service->intro_exclude_nodes = tor_strdup(line->value); @@ -553,7 +555,7 @@ rend_service_introduce(origin_circuit_t *circuit, const char *request, if (len != REND_COOKIE_LEN+DH_KEY_LEN) { log_warn(LD_PROTOCOL, "Bad length %u for INTRODUCE2 cell.", (int)len); reason = END_CIRC_REASON_TORPROTOCOL; - return -1; + goto err; } r_cookie = ptr; |