mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 04:13:28 +01:00
Merge remote-tracking branch 'origin/maint-0.2.4'
This commit is contained in:
commit
df4693fed5
4
changes/bug9644
Normal file
4
changes/bug9644
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
o Minor bugfixes:
|
||||||
|
- Fix a small memory leak on exit. (We weren't freeing directory
|
||||||
|
authority certificate download statuses.) Fixes bug 9644; bugfix
|
||||||
|
on 0.2.4.13-alpha.
|
@ -241,6 +241,27 @@ get_cert_list(const char *id_digest)
|
|||||||
return cl;
|
return cl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Release all space held by a cert_list_t */
|
||||||
|
static void
|
||||||
|
cert_list_free(cert_list_t *cl)
|
||||||
|
{
|
||||||
|
if (!cl)
|
||||||
|
return;
|
||||||
|
|
||||||
|
SMARTLIST_FOREACH(cl->certs, authority_cert_t *, cert,
|
||||||
|
authority_cert_free(cert));
|
||||||
|
smartlist_free(cl->certs);
|
||||||
|
dsmap_free(cl->dl_status_map, tor_free_);
|
||||||
|
tor_free(cl);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Wrapper for cert_list_free so we can pass it to digestmap_free */
|
||||||
|
static void
|
||||||
|
cert_list_free_(void *cl)
|
||||||
|
{
|
||||||
|
cert_list_free(cl);
|
||||||
|
}
|
||||||
|
|
||||||
/** Reload the cached v3 key certificates from the cached-certs file in
|
/** Reload the cached v3 key certificates from the cached-certs file in
|
||||||
* the data directory. Return 0 on success, -1 on failure. */
|
* the data directory. Return 0 on success, -1 on failure. */
|
||||||
int
|
int
|
||||||
@ -3284,13 +3305,7 @@ routerlist_free_all(void)
|
|||||||
smartlist_free(fallback_dir_servers);
|
smartlist_free(fallback_dir_servers);
|
||||||
trusted_dir_servers = fallback_dir_servers = NULL;
|
trusted_dir_servers = fallback_dir_servers = NULL;
|
||||||
if (trusted_dir_certs) {
|
if (trusted_dir_certs) {
|
||||||
DIGESTMAP_FOREACH(trusted_dir_certs, key, cert_list_t *, cl) {
|
digestmap_free(trusted_dir_certs, cert_list_free_);
|
||||||
SMARTLIST_FOREACH(cl->certs, authority_cert_t *, cert,
|
|
||||||
authority_cert_free(cert));
|
|
||||||
smartlist_free(cl->certs);
|
|
||||||
tor_free(cl);
|
|
||||||
} DIGESTMAP_FOREACH_END;
|
|
||||||
digestmap_free(trusted_dir_certs, NULL);
|
|
||||||
trusted_dir_certs = NULL;
|
trusted_dir_certs = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user