Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Gus
Tor
Commits
331204e1
Commit
331204e1
authored
Jun 23, 2022
by
David Goulet
Browse files
Revert "cmux: Don't pick a marked for close circuit as active"
This reverts commit
4f1298e4
.
parent
4f1298e4
Changes
2
Hide whitespace changes
Inline
Side-by-side
changes/ticket25312
deleted
100644 → 0
View file @
4f1298e4
o Minor bugfixes (circuit):
- Fix a tiny window where a circuit can be chosen as active but is marked
for close. Fixes bug 25312; bugfix on 0.2.4.4-alpha.
src/core/or/circuitmux_ewma.c
View file @
331204e1
...
...
@@ -35,7 +35,6 @@
#include
<math.h>
#include
"core/or/or.h"
#include
"core/or/circuit_st.h"
#include
"core/or/circuitmux.h"
#include
"core/or/circuitmux_ewma.h"
#include
"lib/crypt_ops/crypto_rand.h"
...
...
@@ -383,17 +382,10 @@ ewma_pick_active_circuit(circuitmux_t *cmux,
pol
=
TO_EWMA_POL_DATA
(
pol_data
);
for
(
int
i
=
0
;
i
<
smartlist_len
(
pol
->
active_circuit_pqueue
)
;
i
++
)
{
if
(
smartlist_len
(
pol
->
active_circuit_pqueue
)
>
0
)
{
/* Get the head of the queue */
cell_ewma
=
smartlist_get
(
pol
->
active_circuit_pqueue
,
i
);
cell_ewma
=
smartlist_get
(
pol
->
active_circuit_pqueue
,
0
);
circ
=
cell_ewma_to_circuit
(
cell_ewma
);
/* Don't send back closed circuit. This is possible because the circuit
* is detached from the cmux before the circuit gets freed and not when
* marked for close. Because of that, there is a window where a closed
* circuit can be picked here. See #25312. */
if
(
circ
->
marked_for_close
)
{
continue
;
}
}
return
circ
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment