Browse Source

first draft of an 0.2.5.1-alpha changelog

Roger Dingledine 10 years ago
parent
commit
299e8c0292

+ 189 - 0
ChangeLog

@@ -1,3 +1,192 @@
+Changes in version 0.2.5.1-alpha - 2012-10-0?
+  Tor 0.2.5.1-alpha [...]
+
+  This is the first alpha release in a new series, so expect there to
+  be bugs. Users who would rather test out a more stable branch should
+  stay with 0.2.4.x for now.
+
+  o Major features (security):
+    - Use the seccomp2 syscall filtering facility on Linux to limit
+      which system calls Tor can invoke. This is an experimental,
+      Linux-only feature to provide defense-in-depth against unknown
+      attacks. To try turning it on, set "Sandbox 1" in your torrc
+      file. Please be ready to report bugs. We hope to add support
+      for better sandboxing in the future, including more fine-grained
+      filters, better division of responsibility, and support for more
+      platforms. This work has been done by Cristian-Matei Toader for
+      Google Summer of Code.
+    - Re-enable TLS 1.1 and 1.2 when built with OpenSSL 1.0.1e or later.
+      Resolves ticket 6055. (OpenSSL before 1.0.1 didn't have TLS 1.1 or
+      1.2, and OpenSSL from 1.0.1 through 1.0.1d had bugs that prevented
+      renegotiation from working with TLS 1.1 or 1.2, so we had disabled
+      them to solve bug 6033.)
+
+  o Major features (other):
+    - Add support for passing arguments to managed pluggable transport
+      proxies. Implements ticket 3594.
+    - Bridges now track GeoIP information and the number of their users
+      even when pluggable transports are in use, and report usage
+      statistics in their extra-info descriptors. Resolves tickets 4773
+      and 5040.
+    - Make testing Tor networks bootstrap better: lower directory fetch
+      retry schedules and maximum interval without directory requests,
+      and raise maximum download tries. Implements ticket 6752.
+    - Add make target 'test-network' to run tests on a Chutney network.
+      Implements ticket 8530.
+    - The ntor handshake is now on-by-default, no matter what the
+      directory authorities recommend. Implements ticket 8561.
+
+  o Major bugfixes:
+    - Instead of writing destroy cells directly to outgoing connection
+      buffers, queue them and intersperse them with other outgoing cells.
+      This can prevent a set of resource starvation conditions where too
+      many pending destroy cells prevent data cells from actually getting
+      delivered. Reported by "oftc_must_be_destroyed". Fixes bug 7912;
+      bugfix on 0.2.0.1-alpha.
+    - If we are unable to save a microdescriptor to the journal, do not
+      drop it from memory and then reattempt downloading it. Fixes bug
+      9645; bugfix on 0.2.2.6-alpha.
+
+  o Build features:
+    - Tor now builds each source file in two modes: a mode that avoids
+      exposing identifiers needlessly, and another mode that exposes
+      more identifiers for testing. This lets the compiler do better at
+      optimizing the production code, while enabling us to take more
+      radical measures to let the unit tests test things.
+    - The production builds no longer include functions used only in
+      the unit tests; all functions exposed from a module only for
+      unit-testing are now static in production builds.
+    - Add an --enable-coverage configuration option to make the unit
+      tests (and a new src/or/tor-cov target) to build with gcov test
+      coverage support.
+
+  o Testing:
+    - We now have rudimentary function mocking support that our unit
+      tests can use to test functions in isolation. Function mocking
+      lets the tests temporarily replace a function's dependencies with
+      stub functions, so that the tests can check the function without
+      invoking the other functions it calls.
+    - Add more unit tests for the <circid,channel>->circuit map, and
+      the destroy-cell-tracking code to fix bug 7912.
+    - Unit tests for failing cases of the TAP onion handshake.
+    - More unit tests for address-manipulation functions.
+
+  o Minor features (config options):
+    - Config (torrc) lines now handle fingerprints which are missing
+      their initial '$'. Resolves ticket 4341; improvement over 0.0.9pre5.
+    - Support a --dump-config option to print some or all of the
+      configured options. Mainly useful for debugging the command-line
+      option parsing code. Helps resolve ticket 4647.
+    - Raise awareness of safer logging: notify user of potentially
+      unsafe config options, like logging more verbosely than severity
+      "notice" or setting SafeLogging to 0. Resolves ticket 5584.
+    - Add a new configuration option TestingV3AuthVotingStartOffset
+      that bootstraps a network faster by changing the timing for
+      consensus votes. Addresses ticket 8532.
+    - Add a new torrc option "ServerTransportOptions" that allows
+      bridge operators to pass configuration parameters to their
+      pluggable transports. Resolves ticket 8929.
+    - The config (torrc) file now accepts bandwidth and space limits in
+      bits as well as bytes. (Anywhere that you can say "2 Kilobytes",
+      you can now say "16 kilobits", and so on.) Resolves ticket 9214.
+      Patch by CharlieB.
+
+  o Minor features (build):
+    - Add support for `--library-versions` flag. Implements ticket 6384.
+    - Return the "unexpected sendme" warnings to a warn severity, but make
+      them rate limited, to help diagnose ticket 8093.
+    - Detect a missing asciidoc, and warn the user about it, during
+      configure rather than at build time. Fixes issue 6506. Patch from
+      Arlo Breault.
+
+  o Minor features (other):
+    - Use the SOCK_NONBLOCK socket type, if supported, to open nonblocking
+      sockets in a single system call. Implements ticket 5129.
+    - Log current accounting state (bytes sent and received + remaining
+      time for the current accounting period) in the relay's heartbeat
+      message. Implements ticket 5526; patch from Peter Retzlaff.
+    - Implement the TRANSPORT_LAUNCHED control port event that
+      notifies controllers about new launched pluggable
+      transports. Resolves ticket 5609.
+    - If we're using the pure-C 32-bit curve25519_donna implementation
+      of curve25519, build it with the -fomit-frame-pointer option to
+      make it go faster on register-starved hosts. This improves our
+      handshake performance by about 6% on i386 hosts without nacl.
+      Closes ticket 8109.
+
+  o Minor bugfixes:
+    - Set the listen() backlog limit to the largest actually supported
+      on the system, not to the value in a header file. Fixes bug 9716;
+      bugfix on every released Tor.
+    - No longer accept malformed http headers when parsing urls from
+      headers. Now we reply with Bad Request ("400"). Fixes bug 2767;
+      bugfix on 0.0.6pre1.
+    - In munge_extrainfo_into_routerinfo(), check the return value of
+      memchr(). This would have been a serious issue if we ever passed
+      it a non-extrainfo. Fixes bug 8791; bugfix on 0.2.0.6-alpha. Patch
+      from Arlo Breault.
+    - On the chance that somebody manages to build Tor on a
+      platform where time_t is unsigned, correct the way that
+      microdesc_add_to_cache() handles negative time arguments.
+      Fixes bug 8042; bugfix on 0.2.3.1-alpha.
+    - Reject relative control socket paths and emit a warning. Previously,
+      single-component control socket paths would be rejected, but Tor
+      would not log why it could not validate the config. Fixes bug 9258;
+      bugfix on 0.2.3.16-alpha.
+
+  o Minor bugfixes (command line):
+    - Use a single command-line parser for parsing torrc options on the
+      command line and for finding special command-line options to avoid
+      inconsistent behavior for torrc option arguments that have the same
+      names as command-line options. Fixes bugs 4647 and 9578; bugfix on
+      0.0.9pre5.
+    - No longer allow 'tor --hash-password' with no arguments. Fixes bug
+      9573; bugfix on 0.0.9pre5.
+
+  o Minor fixes (build, auxiliary programs):
+    - Stop preprocessing the "torify" script with autoconf, since
+      it no longer refers to LOCALSTATEDIR. Fixes bug 5505; patch
+      from Guilhem.
+    - The tor-fw-helper program now follows the standard convention and
+      exits with status code "0" on success. Fixes bug 9030; bugfix on
+      0.2.3.1-alpha. Patch by Arlo Breault.
+    - Corrected ./configure advice for what openssl dev package you should
+      install on Debian. Fixes bug 9207; bugfix on 0.2.0.1-alpha.
+
+  o Minor code improvements:
+    - Remove constants and tests for PKCS1 padding; it's insecure and
+      shouldn't be used for anything new. Fixes bug 8792; patch
+      from Arlo Breault.
+    - Remove instances of strcpy() from the unit tests. They weren't
+      hurting anything, since they were only in the unit tests, but it's
+      embarassing to have strcpy() in the code at all, and some analysis
+      tools don't like it. Fixes bug 8790; bugfix on 0.2.3.6-alpha and
+      0.2.3.8-alpha. Patch from Arlo Breault.
+
+  o Removed features:
+    - Remove migration code from when we renamed the "cached-routers"
+      file to "cached-descriptors" back in 0.2.0.8-alpha. This
+      incidentally resolves ticket 6502 by cleaning up the related code
+      a bit. Patch from Akshay Hebbar.
+
+  o Code simplification and refactoring:
+    - Extract the common duplicated code for creating a subdirectory
+      of the data directory and writing to a file in it. Fixes ticket
+      4282; patch from Peter Retzlaff.
+    - Since OpenSSL 0.9.7, the i2d_*() functions support allocating output
+      buffer. Avoid calling twice: i2d_RSAPublicKey(), i2d_DHparams(),
+      i2d_X509(), and i2d_PublicKey(). Resolves ticket 5170.
+    - Add a set of accessor functions for the circuit timeout data
+      structure. Fixes ticket 6153; patch from "piet".
+    - Clean up exit paths from connection_listener_new(). Closes ticket
+      8789. Patch from Arlo Breault.
+    - Since we rely on OpenSSL 0.9.8 now, we can use EVP_PKEY_cmp()
+      and drop our own custom pkey_eq() implementation. Fixes bug 9043.
+    - Use a doubly-linked list to implement the global circuit list.
+      Resolves ticket 9108. Patch from Marek Majkowski.
+    - Remove contrib/id_to_fp.c since it wasn't used anywhere.
+
+
 Changes in version 0.2.4.17-rc - 2013-09-05
   Tor 0.2.4.17-rc is the third release candidate for the Tor 0.2.4.x
   series. It adds an emergency step to help us tolerate the massive

+ 0 - 4
changes/6153_circuittime_accessor

@@ -1,4 +0,0 @@
-  o Code simplification and refactoring:
-
-    - Add a set of accessor functions for the circuit timeout data
-      structure. Fixes ticket 6153; patch from "piet".

+ 0 - 2
changes/address_tests

@@ -1,2 +0,0 @@
-  o New unit tests:
-    - More unit tests for address-manipulation functions.

+ 0 - 2
changes/bug2767

@@ -1,2 +0,0 @@
-  o Minor bugfixes:
-    - No longer accepting malformed http headers when parsing urls from headers, replies with Bad Request(400). Fixes #2767.

+ 0 - 3
changes/bug3594

@@ -1,3 +0,0 @@
-  o Major bugfixes:
-    - Add support for passing arguments to managed pluggable transport
-      proxies. Implements ticket #3594.

+ 0 - 4
changes/bug4282

@@ -1,4 +0,0 @@
-  o Code simplifications and refactoring:
-    - Extract the common duplicated code for creating a subdirectory
-      of the data directory and writing to a file in it. Fixes ticket
-      4282; patch from Peter Retzlaff.

+ 0 - 2
changes/bug4341

@@ -1,2 +0,0 @@
-o Minor bugfix:
-    - Config now handles fingerprints which are missing their initial '$'

+ 0 - 18
changes/bug4647

@@ -1,18 +0,0 @@
-  o Minor bugfixes:
-
-    - Use a single command-line parser for parsing torrc options on the
-      command line and for finding special command-line options to avoid
-      inconsistent behavior for torrc option arguments that have the same
-      names as command-line options. Fixes bugs 4647 and 9578; bugfix on
-      0.0.9pre5.
-
-    - No longer allow 'tor --hash-password' with no arguments. Fixes bug
-      9573; bugfix on 0.0.9pre5.
-
-  o Minor features:
-
-    - Support a --dump-config optoin to dump some or all of the configured
-      options. Mainly useful for debugging the command-line option parsing
-      code.
-
-

+ 0 - 8
changes/bug5040

@@ -1,8 +0,0 @@
-  o Minor features:
-    - Bridges now track GeoIP information and the number of their
-      users even when pluggable transports are in use. These
-      statistics are reported in their extra-info descriptors like
-      normal bridges do. Resolves ticket 4773.
-    - Bridges now track the usage of their pluggable transports and
-      report statistics in their extra-info descriptors. Resolves
-      ticket 5040.

+ 0 - 5
changes/bug5170

@@ -1,5 +0,0 @@
-  o Code simplification and refactoring:
-    - Remove contrib/id_to_fp.c since it wasn't used anywhere.
-    - Since OpenSSL 0.9.7 i2d_* functions support allocating output
-      buffer. Avoid calling twice: i2d_RSAPublicKey, i2d_DHparams,
-      i2d_X509, i2d_PublicKey. Fixes #5170.

+ 0 - 5
changes/bug5505

@@ -1,5 +0,0 @@
-  o Minor fixes (build):
-    - Stop preprocessing the "torify" script with autoconf, since
-      it no longer refers to LOCALSTATEDIR. Fixes bug 5505; patch
-      from Guilhem.
-

+ 0 - 4
changes/bug5584

@@ -1,4 +0,0 @@
-  o Minor features:
-    - Raise awareness of safer logging - notice user of potentially
-      unsafe configuration options: logging above "notice" or
-      clearning SafeLogging flag. Fixes #5584.

+ 0 - 4
changes/bug5609

@@ -1,4 +0,0 @@
-  o Minor features:
-    - Implement the TRANSPORT_LAUNCHED control port event that
-      notifies controllers about new launched pluggable
-      transports. Resolves ticket 5609.

+ 0 - 6
changes/bug6055

@@ -1,6 +0,0 @@
-  o Major enhancements:
-    - Re-enable TLS 1.1 and 1.2 when built with OpenSSL 1.0.1e or later.
-      (OpenSSL before 1.0.1 didn't have TLS 1.1 or 1.2. OpenSSL from 1.0.1
-      through 1.0.1d had bugs that prevented renegotiation from working
-      with TLS 1.1 or 1.2, so we disabled them to solve bug 6033.) Fix for
-      issue #6055.

+ 0 - 2
changes/bug6384

@@ -1,2 +0,0 @@
-  o Minor features:
-    - Add support for `--library-versions` flag. Implements ticket #6384.

+ 0 - 4
changes/bug6506

@@ -1,4 +0,0 @@
-  o Minor features (build):
-    - Detect a missing asciidoc, and warn the user about it, during
-      configure, rather than at build time. Fixes issue 6506. Patch
-      from Arlo Breault.

+ 0 - 5
changes/bug6520

@@ -1,5 +0,0 @@
-  o Removed features:
-    - Remove migration code from when we renamed the "cached-routers"
-      file to "cached-descriptors" back in 0.2.0.8-alpha. This
-      incidentally resolves #6502 by cleaning up the related code
-      a bit. Patch from Akshay Hebbar.

+ 0 - 5
changes/bug6752

@@ -1,5 +0,0 @@
- o Minor features:
-   - Lower directory fetch retry schedules and maximum interval without
-     directory requests, and raise maximum download tries in testing
-     networks. Implements #6752.
-

+ 0 - 8
changes/bug7912

@@ -1,8 +0,0 @@
-  o Major bugfixes:
-    - Instead of writing destroy cells directly to outgoing connection
-      buffers, queue them and intersperse them with other outgoing cells.
-      This can prevent a set of resource starvation conditions where too
-      many pending destroy cells prevent data cells from actually getting
-      delivered. Reported by "oftc_must_be_destroyed". Fixes bug 7912;
-      bugfix on 0.2.0.1-alpha.
-

+ 0 - 3
changes/bug8093.part2

@@ -1,3 +0,0 @@
-  o Minor features:
-    - Return the "unexpected sendme" warnings to a warn severity, but make
-      them rate limited. Related to ticket #8093.

+ 0 - 3
changes/bug8530

@@ -1,3 +0,0 @@
-  o Enhancements
-    - Add make target 'test-network' running tests on a Chutney
-      network.

+ 0 - 4
changes/bug8532

@@ -1,4 +0,0 @@
-  o Minor features
-    - Add support for offsetting the voting interval in order to
-      bootstrap a network faster by adding configuration option
-      TestingV3AuthVotingStartOffset. Addresses #8532.

+ 0 - 3
changes/bug8561

@@ -1,3 +0,0 @@
-  o Major features:
-    - The ntor handshake is now on-by-default, no matter what the
-      directory authorities recommend. Implements ticket 8561.

+ 0 - 3
changes/bug8789

@@ -1,3 +0,0 @@
-   o Code simplifications and refactoring:
-     - Clean up exit path from connection_listener_new. Closes bug
-       8789. Patch from Arlo Breault.

+ 0 - 6
changes/bug8790

@@ -1,6 +0,0 @@
-  o Minor code improvements:
-    - Remove instances of strcpy from the unit tests. They weren't
-      hurting anything, since they were only in the unit tests, but
-      it's embarassing to have strcpy() in the code at all, and some
-      analysis tools don't like it. Fixes 8790. Patch from Arlo Breault.
-

+ 0 - 5
changes/bug8791

@@ -1,5 +0,0 @@
-  o Minor bugfixes:
-    - In the function munge_extrainfo_into_routerinfo(), check the return
-      value of memchr(). This would have been a serious issue if we ever
-      passed a non-extrainfo to munge_extrainfo_into_routerinfo. Fixes
-      bug 8791; bugfix on 0.2.0.6-alpha. Patch from Arlo Breault.

+ 0 - 4
changes/bug8792

@@ -1,4 +0,0 @@
-  o Removed code
-    - Remove constants and tests for PKCS1 padding; it's insecure and
-      shouldn't be used for anything new. Fixes bug #8792; patch
-      from Arlo Breault.

+ 0 - 4
changes/bug8929

@@ -1,4 +0,0 @@
-  o Minor features:
-    - Add a new torrc option "ServerTransportOptions" that allows
-      bridge operators to pass configuration parameters to their
-      pluggable transports. Resolves ticket 8929.

+ 0 - 4
changes/bug9030

@@ -1,4 +0,0 @@
-  o Minor bugfixes:
-    - The tor-fw-helper program now follows the standard convention and
-      exits with status code "0" on success. Fixes bug 9030; bugfix on
-      0.2.3.1-alpha. Patch by Arlo Breault.

+ 0 - 3
changes/bug9043

@@ -1,3 +0,0 @@
-  o Code simplification and refactoring:
-    - Since OpenSSL 0.9.8 we can use EVP_PKEY_cmp instead of
-      implementing the same thing as pkey_eq. Fixes #9043.

+ 0 - 3
changes/bug9108

@@ -1,3 +0,0 @@
-  o Code simplifications and refactoring:
-    - Make global_circuitlist data structure in circuitlist.c
-      a doubly-linked list. Bug #9108.

+ 0 - 2
changes/bug9207

@@ -1,2 +0,0 @@
-  o Minor Bugfixes:
-    - Updated configuration advice for installing openssl on Debian. Fixes #9207.

+ 0 - 6
changes/bug9258

@@ -1,6 +0,0 @@
-  o Minor bugfixes:
-    - Reject relative control socket paths and emit a warning.
-      Previously single-component control socket paths would be rejected,
-      but Tor would not log why it could not validate the config.
-      Now we reject all relative control socket paths and print a warning.
-      Fixes bug 9047; bugfix on 0.2.2.6-alpha.

+ 0 - 4
changes/bug9267

@@ -1,4 +0,0 @@
-  o Minor bugfixes:
-    - Added optional parameter to contrib/coverage script to specify directory
-      to put gcov files in, and added reset-gcov target to top-level makefile.
-      Fixes bug #9267.

+ 0 - 5
changes/bug9645a

@@ -1,5 +0,0 @@
-  o Minor bugfixes:
-    - If we are unable to save a microdescriptor to the journal, do not
-      drop it from memory and then reattempt downloading it. Fixes bug
-      9645; bugfix on 0.2.2.6-alpha.
-

+ 0 - 4
changes/bug9716

@@ -1,4 +0,0 @@
-  o Bugfixes (performance):
-    - Set the listen() backlog limit to the largest actually supported
-      on the system, not to the value in a header file. Fixes bug 9716;
-      bugfix on every released Tor.

+ 0 - 27
changes/fancy_testing

@@ -1,27 +0,0 @@
-  o Build features:
-
-    - Tor now builds each source file in two modes: a mode that avoids
-      exposing identifiers needlessly, and another mode that exposes
-      more identifiers for testing. This lets the compiler do better at
-      optimizing the production code, while enabling us to take more
-      radical measures to let the unit tests test things.
-
-    - The production builds no longer include functions used only
-      in the unit tests; all functions exposed from a module for
-      unit-testing only are now static in production builds.
-
-    - Add an --enable-coverage configuration option to make the unit
-      tests (and a new src/or/tor-cov target) to build with gcov test
-      coverage support.
-
-  o Testing:
-
-    - We now have rudimentary function mocking support that our unit
-      tests can use to test functions in isolation. Function mocking
-      lets the tests temporarily replace a function's dependencies with
-      stub functions, so that the tests can check the function without
-      invoking the other functions it calls.
-
-    - Add more unit tests for the <circid,channel>->circuit map, and
-      the destroy-cell-tracking code to fix bug 7912.
-

+ 0 - 6
changes/fomit-frame-pointer

@@ -1,6 +0,0 @@
-  o Minor features (performance):
-    - If we're using the pure-C 32-bit curve25519_donna implementation
-      of curve25519, build it with the -fomit-frame-pointer option to
-      make it go faster on register-starved hosts. This improves our
-      handshake performance by about 6% on i386 hosts without nacl.
-      Closes ticket 8109.

+ 0 - 2
changes/onion_tap_tests

@@ -1,2 +0,0 @@
-  o New unit tests:
-    - Unit tests for failing cases of the TAP onion handshake.

+ 0 - 12
changes/seccomp2_sandbox

@@ -1,12 +0,0 @@
-  o Major features (security):
-    - Use the seccomp2 syscall filtering facility on Linux to limit
-      which system calls Tor can invoke. This is an experimental,
-      Linux-only feature to provide defense-in-depth against unknown
-      attacks. To try turning it on, set "Sandbox 1" in your torrc
-      file. This is an experimental feature, however, and some things
-      may break, so please be ready to report bugs. We hope to add
-      support for better sandboxing in the future,
-      including more fine-grained filters, better division of
-      responsibility, and support for more platforms. This work has
-      been done by Cristian-Matei Toader for Google Summer of Code.
-

+ 0 - 3
changes/ticket5129

@@ -1,3 +0,0 @@
-  o Minor features:
-    - Use the SOCK_NONBLOCK socket type, if supported, to open nonblocking 
-      sockets in a single system call. Implements ticket #5129.

+ 0 - 4
changes/ticket5526

@@ -1,4 +0,0 @@
-  o Minor features:
-    - Log current accounting state (bytes sent and received + remaining
-      time for the current accounting period) in the server's
-      heartbeat message. Implements ticket 5526; patch from Peter Retzlaff.

+ 0 - 3
changes/ticket9108

@@ -1,3 +0,0 @@
-  o Code simplification and refactoring:
-    - Use a doubly-linked list to implement the global circuit list.
-      Fix for ticket 9108. Patch from Marek Majkowski.

+ 0 - 6
changes/ticket_9214

@@ -1,6 +0,0 @@
-  o Minor features:
-    - Accept bandwidth and space limits in bits as well as bytes.
-      (Anywhere in the configuration file that you can say "2 Kilobytes",
-      you can now say "16 kilobits", and so on.) Resolves ticket 9214.
-      Patch by CharlieB.
-

+ 0 - 11
changes/warn-unsigned-time_t

@@ -1,11 +0,0 @@
-  o Minor bugfixes (portability):
-    - On the chance that somebody manages to build Tor on a
-      platform where time_t is unsigned, correct the way that
-      microdesc_add_to_cache handles negative time arguments. Fix for
-      bug 8042; bugfix on 0.2.3.1-alpha.
-
-  o Build improvements:
-    - Warn if building on a platform with an unsigned time_t: there
-      are too many places where Tor currently assumes that time_t can
-      hold negative values. We'd like to fix them all, but probably
-      some will remain.