mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-30 15:43:32 +01:00
backport candidate:
Fix a minor memory leak when we fail to find enough suitable servers to choose a circuit. Bugfix on 0.1.2.x. svn:r11247
This commit is contained in:
parent
a80dd635b3
commit
79066b4851
@ -24,6 +24,8 @@ Changes in version 0.2.0.6-alpha - 2007-??-??
|
|||||||
- Stop putting the authentication cookie in a file called "0"
|
- Stop putting the authentication cookie in a file called "0"
|
||||||
in your working directory if you don't specify anything for the
|
in your working directory if you don't specify anything for the
|
||||||
new CookieAuthFile option. Reported by Matt Edman.
|
new CookieAuthFile option. Reported by Matt Edman.
|
||||||
|
- Fix a minor memory leak when we fail to find enough suitable
|
||||||
|
servers to choose a circuit. Bugfix on 0.1.2.x.
|
||||||
|
|
||||||
o Minor features (misc):
|
o Minor features (misc):
|
||||||
- Optionally (if built with -DEXPORTMALLINFO) export the output
|
- Optionally (if built with -DEXPORTMALLINFO) export the output
|
||||||
|
@ -1072,7 +1072,6 @@ circuit_get_unhandled_ports(time_t now)
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < smartlist_len(source); ++i) {
|
for (i = 0; i < smartlist_len(source); ++i) {
|
||||||
/*XXXX020 some of these are leaked somewhere.. fix that. */
|
|
||||||
tmp = tor_malloc(sizeof(uint16_t));
|
tmp = tor_malloc(sizeof(uint16_t));
|
||||||
memcpy(tmp, smartlist_get(source, i), sizeof(uint16_t));
|
memcpy(tmp, smartlist_get(source, i), sizeof(uint16_t));
|
||||||
smartlist_add(dest, tmp);
|
smartlist_add(dest, tmp);
|
||||||
@ -1272,7 +1271,7 @@ choose_good_exit_server_general(routerlist_t *dir, int need_uptime,
|
|||||||
* at least one predicted exit port. */
|
* at least one predicted exit port. */
|
||||||
|
|
||||||
int try;
|
int try;
|
||||||
smartlist_t *needed_ports = circuit_get_unhandled_ports(time(NULL));
|
smartlist_t *needed_ports;
|
||||||
|
|
||||||
if (best_support == -1) {
|
if (best_support == -1) {
|
||||||
if (need_uptime || need_capacity) {
|
if (need_uptime || need_capacity) {
|
||||||
@ -1290,6 +1289,7 @@ choose_good_exit_server_general(routerlist_t *dir, int need_uptime,
|
|||||||
log_notice(LD_CIRC, "All routers are down or won't exit -- choosing a "
|
log_notice(LD_CIRC, "All routers are down or won't exit -- choosing a "
|
||||||
"doomed exit at random.");
|
"doomed exit at random.");
|
||||||
}
|
}
|
||||||
|
needed_ports = circuit_get_unhandled_ports(time(NULL));
|
||||||
for (try = 0; try < 2; try++) {
|
for (try = 0; try < 2; try++) {
|
||||||
/* try once to pick only from routers that satisfy a needed port,
|
/* try once to pick only from routers that satisfy a needed port,
|
||||||
* then if there are none, pick from any that support exiting. */
|
* then if there are none, pick from any that support exiting. */
|
||||||
|
Loading…
Reference in New Issue
Block a user