mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-11 05:33:47 +01:00
Fix a bug related to moving signing_key_cert
Now that the field exists in signed_descriptor_t, we need to make sure we free it when we free a signed_descriptor_t, and we need to make sure that we don't free it when we convert a routerinfo_t to a signed_descriptor_t. But not in any released Tor. I found this while working on #19128. One problem: I don't see how this could cause 19128.
This commit is contained in:
parent
33841a6030
commit
50cbf22099
@ -2932,6 +2932,7 @@ signed_descriptor_free(signed_descriptor_t *sd)
|
||||
return;
|
||||
|
||||
tor_free(sd->signed_descriptor_body);
|
||||
tor_cert_free(sd->signing_key_cert);
|
||||
|
||||
memset(sd, 99, sizeof(signed_descriptor_t)); /* Debug bad mem usage */
|
||||
tor_free(sd);
|
||||
@ -2949,6 +2950,7 @@ signed_descriptor_from_routerinfo(routerinfo_t *ri)
|
||||
memcpy(sd, &(ri->cache_info), sizeof(signed_descriptor_t));
|
||||
sd->routerlist_index = -1;
|
||||
ri->cache_info.signed_descriptor_body = NULL;
|
||||
ri->cache_info.signing_key_cert = NULL;
|
||||
routerinfo_free(ri);
|
||||
return sd;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user