diff options
-rw-r--r-- | changes/bug25761 | 3 | ||||
-rw-r--r-- | src/or/hs_service.c | 5 | ||||
-rw-r--r-- | src/or/rendservice.c | 5 |
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 |