aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Goulet <dgoulet@torproject.org>2023-11-07 13:50:28 -0500
committerDavid Goulet <dgoulet@torproject.org>2023-11-07 13:50:28 -0500
commite62b8bce5a88f8fa38a62ab503df7f0eecfb1d22 (patch)
tree024232a2b14315374f0d57a631e6324b36af0224 /src
parentc7d8501da87c6c6254880b27777cf6a15cd5484d (diff)
downloadtor-e62b8bce5a88f8fa38a62ab503df7f0eecfb1d22.tar.gz
tor-e62b8bce5a88f8fa38a62ab503df7f0eecfb1d22.zip
hs: Fix assert in hs_metrics_update_by_ident()
The hs_metrics_failed_rdv() macro could pass a NULL value for the identity key when a building circuit would end up in a failure path *before* the "hs_ident" was able to be set which leading to this assert. This was introduced in 0.4.8.1-alpha with the addition of rendezvous circuit failure metrics for the MetricsPort. This fixes TROVE-2023-006 for which its severity is considered high. Signed-off-by: David Goulet <dgoulet@torproject.org>
Diffstat (limited to 'src')
-rw-r--r--src/feature/hs/hs_metrics.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/feature/hs/hs_metrics.c b/src/feature/hs/hs_metrics.c
index 19a330a01e..4ce91c2b32 100644
--- a/src/feature/hs/hs_metrics.c
+++ b/src/feature/hs/hs_metrics.c
@@ -199,7 +199,12 @@ hs_metrics_update_by_ident(const hs_metrics_key_t key,
{
hs_service_t *service;
- tor_assert(ident_pk);
+ if (!ident_pk) {
+ /* We can end up here in case this is used from a failure/closing path for
+ * which we might not have any identity key attacehed to a circuit or
+ * connection yet. Simply don't assume we have one. */
+ return;
+ }
service = hs_service_find(ident_pk);
if (!service) {