mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 05:43:30 +01:00
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>
This commit is contained in:
parent
c7d8501da8
commit
e62b8bce5a
4
changes/ticket40883
Normal file
4
changes/ticket40883
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
o Major bugfixes (onion service, TROVE-2023-006):
|
||||||
|
- Fix a possible hard assert on a NULL pointer when recording a failed
|
||||||
|
rendezvous circuit on the service side for the MetricsPort. Fixes bug
|
||||||
|
40883; bugfix on 0.4.8.1-alpha
|
@ -199,7 +199,12 @@ hs_metrics_update_by_ident(const hs_metrics_key_t key,
|
|||||||
{
|
{
|
||||||
hs_service_t *service;
|
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);
|
service = hs_service_find(ident_pk);
|
||||||
if (!service) {
|
if (!service) {
|
||||||
|
Loading…
Reference in New Issue
Block a user