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:
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;
}