mirror repository of the tor core protocol in case of issues
Go to file
David Goulet c99f220f78 conn: Close the read side of a closing connection when write limit is reached
In conn_close_if_marked(), we can decide to keep a connection open that still
has data to flush on the wire if it is being rate limited on the write side.

However, in this process, we were also looking at the read() side which can
still have token in its bucket and thus not stop the reading. This lead to a
BUG() introduced in 0.3.4.1-alpha that was expecting the read side to be
closed due to the rate limit but which only applies on the write side.

This commit removes any bandwidth check on the read side and simply stop the
read side on the connection regardless of the bucket state. If we keep the
connection open to flush it out before close, we should not read anything.

Fixes #27750

Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-11-14 15:42:52 -05:00
changes conn: Close the read side of a closing connection when write limit is reached 2018-11-14 15:42:52 -05:00
contrib Bump to 0.3.4.9-dev 2018-11-02 13:01:32 -04:00
doc Merge branch 'maint-0.3.3' into maint-0.3.4 2018-08-16 08:35:31 -04:00
m4 Replace obsolete macros with modern equivalents 2016-12-23 10:34:11 -05:00
scripts Appveyor CI: always use HEAD for the short commit 2018-08-24 10:11:24 +10:00
src conn: Close the read side of a closing connection when write limit is reached 2018-11-14 15:42:52 -05:00
.appveyor.yml Appveyor: Don't try to install the mingw openssl package 2018-10-10 10:22:08 -04:00
.editorconfig Add .editorconfig to follow coding standards style 2018-06-17 19:24:40 -04:00
.gitignore Use a rust build script to set linker options correctly for tests. 2018-06-19 12:01:13 -04:00
.gitlab-ci.yml Fix spelling mistakes corresponding to ticket #23650 2018-02-07 10:41:57 -05:00
.gitmodules Update the .gitmodules to refer to project-level tor-rust-dependencies 2018-02-21 11:53:04 -05:00
.travis.yml Merge branch 'bug27738-033' into bug27738-034 2018-10-10 15:13:02 -05:00
acinclude.m4 Run the copyright update script. 2017-03-15 16:13:17 -04:00
autogen.sh Report errors when updating configuration files 2016-12-23 10:35:26 -05:00
ChangeLog copy 0.3.3.7 changelog forward to master 2018-06-12 12:06:26 -04:00
config.rust.in Use a rust build script to set linker options correctly for tests. 2018-06-19 12:01:13 -04:00
configure.ac Merge branch 'maint-0.3.3' into maint-0.3.4 2018-11-09 10:49:47 -05:00
CONTRIBUTING improve a URL 2018-05-11 18:00:30 -04:00
Doxyfile.in doxygen says these options are obsolete 2016-10-24 10:31:05 -04:00
INSTALL Small fixes for the 2702 implementation 2011-04-02 12:15:08 +02:00
LICENSE Run the copyright update script. 2017-03-15 16:13:17 -04:00
link_rust.sh.in Allow spaces in CCLD in linker.sh 2018-06-20 19:17:29 -04:00
Makefile.am Merge branch 'maint-0.3.3' into maint-0.3.4 2018-08-29 11:17:31 -04:00
Makefile.nmake Clean up the MVSC nmake files so they work again. 2014-09-09 10:27:05 -04:00
README doc: Put the release timeline link in README 2017-11-08 10:44:00 -05:00
ReleaseNotes copy 0.3.3.7 changelog forward to master 2018-06-12 12:06:26 -04:00

Tor protects your privacy on the internet by hiding the connection
between your Internet address and the services you use. We believe Tor
is reasonably secure, but please ensure you read the instructions and
configure it properly.

To build Tor from source:
        ./configure && make && make install

To build Tor from a just-cloned git repository:
        sh autogen.sh && ./configure && make && make install

Home page:
        https://www.torproject.org/

Download new versions:
        https://www.torproject.org/download/download.html

Documentation, including links to installation and setup instructions:
        https://www.torproject.org/docs/documentation.html

Making applications work with Tor:
        https://wiki.torproject.org/projects/tor/wiki/doc/TorifyHOWTO

Frequently Asked Questions:
        https://www.torproject.org/docs/faq.html


To get started working on Tor development:
        See the doc/HACKING directory.

Release timeline:
         https://trac.torproject.org/projects/tor/wiki/org/teams/NetworkTeam/CoreTorReleases