mirror repository of the tor core protocol in case of issues
Go to file
David Goulet 6120efd771 chan: Do not re-queue after a fail cell write
Couple things happen in this commit. First, we do not re-queue a cell back in
the circuit queue if the write packed cell failed. Currently, it is close to
impossible to have it failed but just in case, the channel is mark as closed
and we move on.

The second thing is that the channel_write_packed_cell() always took ownership
of the cell whatever the outcome. This means, on success or failure, it needs
to free it.

It turns out that that we were using the wrong free function in one case and
not freeing it in an other possible code path. So, this commit makes sure we
only free it in one place that is at the very end of
channel_write_packed_cell() which is the top layer of the channel abstraction.
This makes also channel_tls_write_packed_cell_method() return a negative value
on error.

Two unit tests had to be fixed (quite trivial) due to a double free of the
packed cell in the test since now we do free it in all cases correctly.

Part of #23709

Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-12-08 14:43:27 -05:00
changes Merge branch 'ticket23953_033_squashed' 2017-11-21 14:06:57 -05:00
contrib Bump to 0.3.2.4-alpha 2017-11-07 13:22:27 -05:00
doc Merge remote-tracking branch 'ahf-gitlab/ahf/24062-simpleperf' 2017-11-21 14:09:56 -05:00
m4 Replace obsolete macros with modern equivalents 2016-12-23 10:34:11 -05:00
scripts Merge branch 'maint-0.3.2' 2017-11-05 14:41:53 -05:00
src chan: Do not re-queue after a fail cell write 2017-12-08 14:43:27 -05:00
.gitignore Add a small library to emulate tor_run_main() with exec() 2017-11-01 13:22:09 -04:00
.gitlab-ci.yml Match .travis.yml more closely 2017-10-05 22:42:00 -05:00
.gitmodules Allow Rust build using locally supplied crates or crates.io 2017-05-19 08:47:11 -04:00
.travis.yml Merge branch 'maint-0.3.0' into maint-0.3.1 2017-07-26 15:39:56 -04: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 forwardport a changelog 2017-11-22 08:27:35 -05:00
configure.ac Merge branch 'ticket23953_033_squashed' 2017-11-21 14:06:57 -05: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
Makefile.am Make distcleancheck pass with --enable-rust 2017-10-27 12:35:13 -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 reach into the past and fix a typo 2017-10-25 13:13:52 -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