diff options
author | teor <teor@torproject.org> | 2019-11-25 12:33:14 +1000 |
---|---|---|
committer | teor <teor@torproject.org> | 2019-11-25 12:33:14 +1000 |
commit | 83424cb62f19ee09cba769a6c9a8cc94fc3c4cb7 (patch) | |
tree | 04d00bb7ff9f69a33b3d306960af1902f791a77f /src/feature | |
parent | f9812ee5f7336bac9caaf57946e46cd19dfaf0be (diff) | |
parent | 984a28f3e502c6df9e28057c3e934b98df83d8e9 (diff) | |
download | tor-83424cb62f19ee09cba769a6c9a8cc94fc3c4cb7.tar.gz tor-83424cb62f19ee09cba769a6c9a8cc94fc3c4cb7.zip |
Merge remote-tracking branch 'tor-github/pr/1395' into maint-0.3.5
Diffstat (limited to 'src/feature')
-rw-r--r-- | src/feature/hs/hs_service.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/feature/hs/hs_service.c b/src/feature/hs/hs_service.c index b05f20366f..7e150599fc 100644 --- a/src/feature/hs/hs_service.c +++ b/src/feature/hs/hs_service.c @@ -1686,6 +1686,15 @@ build_desc_intro_points(const hs_service_t *service, DIGEST256MAP_FOREACH(desc->intro_points.map, key, const hs_service_intro_point_t *, ip) { + if (!ip->circuit_established) { + /* Ignore un-established intro points. They can linger in that list + * because their circuit has not opened and they haven't been removed + * yet even though we have enough intro circuits. + * + * Due to #31561, it can stay in that list until rotation so this check + * prevents to publish an intro point without a circuit. */ + continue; + } hs_desc_intro_point_t *desc_ip = hs_desc_intro_point_new(); if (setup_desc_intro_point(&desc->signing_kp, ip, now, desc_ip) < 0) { hs_desc_intro_point_free(desc_ip); |