tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

commit 33382184b67d43b859de2f50d24cc7955b9f0db7
parent 180048e013c06ee67c053186aab46ff94cea0489
Author: David Goulet <dgoulet@torproject.org>
Date:   Mon,  3 Jun 2019 14:31:51 -0400

sendme: Do not decrement window in a log_debug()

If "Log debug ..." is not set, the decrement never happens. This lead to the
package/deliver window to be out of sync at the stream level and thus breaking
the connection after 50+ cells.

Fixes #30628

Signed-off-by: David Goulet <dgoulet@torproject.org>

Diffstat:
Achanges/ticket30628 | 5+++++
Msrc/core/or/sendme.c | 4+++-
2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/changes/ticket30628 b/changes/ticket30628 @@ -0,0 +1,5 @@ + o Major bugfixes (Flow Control, SENDME): + - The decrement of the stream-level package window was done in a log_debug() + statement meaning that if the debug logs were not enabled, the decrement + would never happen and thus the window would be out of sync with the other + end point. Fixes bug 30628; bugfix on 0.4.1.1-alpha. diff --git a/src/core/or/sendme.c b/src/core/or/sendme.c @@ -619,7 +619,9 @@ int sendme_note_stream_data_packaged(edge_connection_t *conn) { tor_assert(conn); - log_debug(LD_APP, "Stream package_window now %d.", --conn->package_window); + + --conn->package_window; + log_debug(LD_APP, "Stream package_window now %d.", conn->package_window); return conn->package_window; }