aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changes/bug257613
-rw-r--r--src/or/hs_service.c5
-rw-r--r--src/or/rendservice.c5
3 files changed, 6 insertions, 7 deletions
diff --git a/changes/bug25761 b/changes/bug25761
new file mode 100644
index 0000000000..096fadcf09
--- /dev/null
+++ b/changes/bug25761
@@ -0,0 +1,3 @@
+ o Major bugfixes (onion service):
+ - Correctly detect when onion services get disabled after HUP.
+ Fixes bug 25761; bugfix on 0.3.2.1.
diff --git a/src/or/hs_service.c b/src/or/hs_service.c
index 8ddd68c69e..b9a1dfc36e 100644
--- a/src/or/hs_service.c
+++ b/src/or/hs_service.c
@@ -859,11 +859,6 @@ register_all_services(void)
tor_assert(hs_service_staging_list);
- /* We'll save us some allocation and computing time. */
- if (smartlist_len(hs_service_staging_list) == 0) {
- return;
- }
-
/* Allocate a new map that will replace the current one. */
new_service_map = tor_malloc_zero(sizeof(*new_service_map));
HT_INIT(hs_service_ht, new_service_map);
diff --git a/src/or/rendservice.c b/src/or/rendservice.c
index 2c5c5840a1..fed8c97ebb 100644
--- a/src/or/rendservice.c
+++ b/src/or/rendservice.c
@@ -618,10 +618,11 @@ void
rend_service_prune_list(void)
{
smartlist_t *old_service_list = rend_service_list;
- /* Don't try to prune anything if we have no staging list. */
+
if (!rend_service_staging_list) {
- return;
+ rend_service_staging_list = smartlist_new();
}
+
rend_service_prune_list_impl_();
if (old_service_list) {
/* Every remaining service in the old list have been removed from the