mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-11 05:33:47 +01:00
Merge remote-tracking branch 'origin/maint-0.2.2'
Conflicts: src/or/command.c
This commit is contained in:
commit
212c3acd42
5
changes/bug4299
Normal file
5
changes/bug4299
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
o Major bugfix:
|
||||||
|
- Do not process cells on a marked-for-close connection. We previously
|
||||||
|
avoided this by not calling read handlers on marked connections, but
|
||||||
|
that's not adequate for the case when cells are very small. Fixes
|
||||||
|
bug 4299; bugfix on 0.2.0.20-rc which first made small cells possible.
|
@ -148,6 +148,9 @@ command_process_cell(cell_t *cell, or_connection_t *conn)
|
|||||||
#define PROCESS_CELL(tp, cl, cn) command_process_ ## tp ## _cell(cl, cn)
|
#define PROCESS_CELL(tp, cl, cn) command_process_ ## tp ## _cell(cl, cn)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (conn->_base.marked_for_close)
|
||||||
|
return;
|
||||||
|
|
||||||
/* Reject all but VERSIONS and NETINFO when handshaking. */
|
/* Reject all but VERSIONS and NETINFO when handshaking. */
|
||||||
/* (VERSIONS should actually be impossible; it's variable-length.) */
|
/* (VERSIONS should actually be impossible; it's variable-length.) */
|
||||||
if (handshaking && cell->command != CELL_VERSIONS &&
|
if (handshaking && cell->command != CELL_VERSIONS &&
|
||||||
@ -230,6 +233,9 @@ command_process_var_cell(var_cell_t *cell, or_connection_t *conn)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (conn->_base.marked_for_close)
|
||||||
|
return;
|
||||||
|
|
||||||
switch (conn->_base.state)
|
switch (conn->_base.state)
|
||||||
{
|
{
|
||||||
case OR_CONN_STATE_OR_HANDSHAKING_V2:
|
case OR_CONN_STATE_OR_HANDSHAKING_V2:
|
||||||
|
Loading…
Reference in New Issue
Block a user