mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-23 20:03:31 +01:00
Forward-port 0.2.8.6 entry to changelog and releasenotes
This commit is contained in:
parent
253f8140c8
commit
e289304c4b
35
ChangeLog
35
ChangeLog
@ -1,6 +1,41 @@
|
||||
Changes in version 0.2.9.1-alpha - 2016-??-??
|
||||
|
||||
|
||||
Changes in version 0.2.8.6 - 2016-08-02
|
||||
|
||||
Tor 0.2.8.6 is the first stable version of the Tor 0.2.8 series.
|
||||
|
||||
The Tor 0.2.8 series improves client bootstrapping performance,
|
||||
completes the authority-side implementation of improved identity
|
||||
keys for relays, and includes numerous bugfixes and performance
|
||||
improvements throughout the program. This release continues to
|
||||
improve the coverage of Tor's test suite. For a full list of
|
||||
changes since Tor 0.2.7, see the ReleaseNotes file.
|
||||
|
||||
Changes since 0.2.8.5-rc:
|
||||
|
||||
o Minor features (geoip):
|
||||
- Update geoip and geoip6 to the July 6 2016 Maxmind GeoLite2
|
||||
Country database.
|
||||
|
||||
o Minor bugfixes (compilation):
|
||||
- Fix a compilation warning in the unit tests on systems where char
|
||||
is signed. Fixes bug 19682; bugfix on 0.2.8.1-alpha.
|
||||
|
||||
o Minor bugfixes (fallback directories):
|
||||
- Remove a fallback that was on the hardcoded list, then opted-out.
|
||||
Fixes bug 19782; update to fallback list from 0.2.8.2-alpha.
|
||||
|
||||
o Minor bugfixes (Linux seccomp2 sandbox):
|
||||
- Allow more syscalls when running with "Sandbox 1" enabled:
|
||||
sysinfo, getsockopt(SO_SNDBUF), and setsockopt(SO_SNDBUFFORCE). On
|
||||
some systems, these are required for Tor to start. Fixes bug
|
||||
18397; bugfix on 0.2.5.1-alpha. Patch from Daniel Pinto.
|
||||
- Allow IPPROTO_UDP datagram sockets when running with "Sandbox 1",
|
||||
so that get_interface_address6_via_udp_socket_hack() can work.
|
||||
Fixes bug 19660; bugfix on 0.2.5.1-alpha.
|
||||
|
||||
|
||||
Changes in version 0.2.8.5-rc - 2016-07-07
|
||||
Tor 0.2.8.5-rc is the second release candidate in the Tor 0.2.8
|
||||
series. If we find no new bugs or regressions here, the first stable
|
||||
|
725
ReleaseNotes
725
ReleaseNotes
@ -2,6 +2,731 @@ This document summarizes new features and bugfixes in each stable release
|
||||
of Tor. If you want to see more detailed descriptions of the changes in
|
||||
each development snapshot, see the ChangeLog file.
|
||||
|
||||
|
||||
Changes in version 0.2.8.6 - 2016-08-02
|
||||
|
||||
Tor 0.2.8.6 is the first stable version of the Tor 0.2.8 series.
|
||||
|
||||
The Tor 0.2.8 series improves client bootstrapping performance,
|
||||
completes the authority-side implementation of improved identity
|
||||
keys for relays, and includes numerous bugfixes and performance
|
||||
improvements throughout the program. This release continues to
|
||||
improve the coverage of Tor's test suite. For a full list of
|
||||
changes since Tor 0.2.7, see the ReleaseNotes file.
|
||||
|
||||
Below is a list of the changes since Tor 0.2.7.
|
||||
|
||||
o New system requirements:
|
||||
- Tor no longer attempts to support platforms where the "time_t"
|
||||
type is unsigned. (To the best of our knowledge, only OpenVMS does
|
||||
this, and Tor has never actually built on OpenVMS.) Closes
|
||||
ticket 18184.
|
||||
- Tor no longer supports versions of OpenSSL with a broken
|
||||
implementation of counter mode. (This bug was present in OpenSSL
|
||||
1.0.0, and was fixed in OpenSSL 1.0.0a.) Tor still detects, but no
|
||||
longer runs with, these versions.
|
||||
- Tor now uses Autoconf version 2.63 or later, and Automake 1.11 or
|
||||
later (released in 2008 and 2009 respectively). If you are
|
||||
building Tor from the git repository instead of from the source
|
||||
distribution, and your tools are older than this, you will need to
|
||||
upgrade. Closes ticket 17732.
|
||||
|
||||
o Directory authority changes:
|
||||
- Update the V3 identity key for the dannenberg directory authority:
|
||||
it was changed on 18 November 2015. Closes task 17906. Patch
|
||||
by teor.
|
||||
- Urras is no longer a directory authority. Closes ticket 19271.
|
||||
|
||||
o Major features (directory system):
|
||||
- Include a trial list of default fallback directories, based on an
|
||||
opt-in survey of suitable relays. Doing this should make clients
|
||||
bootstrap more quickly and reliably, and reduce the load on the
|
||||
directory authorities. Closes ticket 15775. Patch by teor.
|
||||
Candidates identified using an OnionOO script by weasel, teor,
|
||||
gsathya, and karsten.
|
||||
- Previously only relays that explicitly opened a directory port
|
||||
(DirPort) accepted directory requests from clients. Now all
|
||||
relays, with and without a DirPort, accept and serve tunneled
|
||||
directory requests that they receive through their ORPort. You can
|
||||
disable this behavior using the new DirCache option. Closes
|
||||
ticket 12538.
|
||||
- When bootstrapping multiple consensus downloads at a time, use the
|
||||
first one that starts downloading, and close the rest. This
|
||||
reduces failures when authorities or fallback directories are slow
|
||||
or down. Together with the code for feature 15775, this feature
|
||||
should reduces failures due to fallback churn. Implements ticket
|
||||
4483. Patch by teor. Implements IPv4 portions of proposal 210 by
|
||||
mikeperry and teor.
|
||||
|
||||
o Major features (security, Linux):
|
||||
- When Tor starts as root on Linux and is told to switch user ID, it
|
||||
can now retain the capability to bind to low ports. By default,
|
||||
Tor will do this only when it's switching user ID and some low
|
||||
ports have been configured. You can change this behavior with the
|
||||
new option KeepBindCapabilities. Closes ticket 8195.
|
||||
|
||||
o Major bugfixes (client, bootstrapping):
|
||||
- Check if bootstrap consensus downloads are still needed when the
|
||||
linked connection attaches. This prevents tor making unnecessary
|
||||
begindir-style connections, which are the only directory
|
||||
connections tor clients make since the fix for 18483 was merged.
|
||||
- Fix some edge cases where consensus download connections may not
|
||||
have been closed, even though they were not needed. Related to fix
|
||||
for 18809.
|
||||
- Make relays retry consensus downloads the correct number of times,
|
||||
rather than the more aggressive client retry count. Fixes part of
|
||||
ticket 18809.
|
||||
|
||||
o Major bugfixes (dns proxy mode, crash):
|
||||
- Avoid crashing when running as a DNS proxy. Fixes bug 16248;
|
||||
bugfix on 0.2.0.1-alpha. Patch from "cypherpunks".
|
||||
|
||||
o Major bugfixes (ed25519, voting):
|
||||
- Actually enable support for authorities to match routers by their
|
||||
Ed25519 identities. Previously, the code had been written, but
|
||||
some debugging code that had accidentally been left in the
|
||||
codebase made it stay turned off. Fixes bug 17702; bugfix
|
||||
on 0.2.7.2-alpha.
|
||||
- When collating votes by Ed25519 identities, authorities now
|
||||
include a "NoEdConsensus" flag if the ed25519 value (or lack
|
||||
thereof) for a server does not reflect the majority consensus.
|
||||
Related to bug 17668; bugfix on 0.2.7.2-alpha.
|
||||
- When generating a vote with keypinning disabled, never include two
|
||||
entries for the same ed25519 identity. This bug was causing
|
||||
authorities to generate votes that they could not parse when a
|
||||
router violated key pinning by changing its RSA identity but
|
||||
keeping its Ed25519 identity. Fixes bug 17668; fixes part of bug
|
||||
18318. Bugfix on 0.2.7.2-alpha.
|
||||
|
||||
o Major bugfixes (key management):
|
||||
- If OpenSSL fails to generate an RSA key, do not retain a dangling
|
||||
pointer to the previous (uninitialized) key value. The impact here
|
||||
should be limited to a difficult-to-trigger crash, if OpenSSL is
|
||||
running an engine that makes key generation failures possible, or
|
||||
if OpenSSL runs out of memory. Fixes bug 19152; bugfix on
|
||||
0.2.1.10-alpha. Found by Yuan Jochen Kang, Suman Jana, and
|
||||
Baishakhi Ray.
|
||||
|
||||
o Major bugfixes (security, client, DNS proxy):
|
||||
- Stop a crash that could occur when a client running with DNSPort
|
||||
received a query with multiple address types, and the first
|
||||
address type was not supported. Found and fixed by Scott Dial.
|
||||
Fixes bug 18710; bugfix on 0.2.5.4-alpha.
|
||||
|
||||
o Major bugfixes (security, compilation):
|
||||
- Correctly detect compiler flags on systems where _FORTIFY_SOURCE
|
||||
is predefined. Previously, our use of -D_FORTIFY_SOURCE would
|
||||
cause a compiler warning, thereby making other checks fail, and
|
||||
needlessly disabling compiler-hardening support. Fixes one case of
|
||||
bug 18841; bugfix on 0.2.3.17-beta. Patch from "trudokal".
|
||||
- Repair hardened builds under the clang compiler. Previously, our
|
||||
use of _FORTIFY_SOURCE would conflict with clang's address
|
||||
sanitizer. Fixes bug 14821; bugfix on 0.2.5.4-alpha.
|
||||
|
||||
o Major bugfixes (security, pointers):
|
||||
- Avoid a difficult-to-trigger heap corruption attack when extending
|
||||
a smartlist to contain over 16GB of pointers. Fixes bug 18162;
|
||||
bugfix on 0.1.1.11-alpha, which fixed a related bug incompletely.
|
||||
Reported by Guido Vranken.
|
||||
|
||||
o Major bugfixes (testing):
|
||||
- Fix a bug that would block 'make test-network-all' on systems where
|
||||
IPv6 packets were lost. Fixes bug 19008; bugfix on 0.2.7.3-rc.
|
||||
|
||||
o Major bugfixes (user interface):
|
||||
- Correctly give a warning in the cases where a relay is specified
|
||||
by nickname, and one such relay is found, but it is not officially
|
||||
Named. Fixes bug 19203; bugfix on 0.2.3.1-alpha.
|
||||
|
||||
o Minor features (accounting):
|
||||
- Added two modes to the AccountingRule option: One for limiting
|
||||
only the number of bytes sent ("AccountingRule out"), and one for
|
||||
limiting only the number of bytes received ("AccountingRule in").
|
||||
Closes ticket 15989; patch from "unixninja92".
|
||||
|
||||
o Minor features (bug-resistance):
|
||||
- Make Tor survive errors involving connections without a
|
||||
corresponding event object. Previously we'd fail with an
|
||||
assertion; now we produce a log message. Related to bug 16248.
|
||||
- Use tor_snprintf() and tor_vsnprintf() even in external and low-
|
||||
level code, to harden against accidental failures to NUL-
|
||||
terminate. Part of ticket 17852. Patch from jsturgix. Found
|
||||
with Flawfinder.
|
||||
|
||||
o Minor features (build):
|
||||
- Detect systems with FreeBSD-derived kernels (such as GNU/kFreeBSD)
|
||||
as having possible IPFW support. Closes ticket 18448. Patch from
|
||||
Steven Chamberlain.
|
||||
- Since our build process now uses "make distcheck", we no longer
|
||||
force "make dist" to depend on "make check". Closes ticket 17893;
|
||||
patch from "cypherpunks".
|
||||
- Tor now builds once again with the recent OpenSSL 1.1 development
|
||||
branch (tested against 1.1.0-pre5 and 1.1.0-pre6-dev). We have been
|
||||
tracking OpenSSL 1.1 development as it has progressed, and fixing
|
||||
numerous compatibility issues as they arose. See tickets
|
||||
17549, 17921, 17984, 19499, and 18286.
|
||||
- When building manual pages, set the timezone to "UTC", so that the
|
||||
output is reproducible. Fixes bug 19558; bugfix on 0.2.2.9-alpha.
|
||||
Patch from intrigeri.
|
||||
|
||||
o Minor features (clients):
|
||||
- Make clients, onion services, and bridge relays always use an
|
||||
encrypted begindir connection for directory requests. Resolves
|
||||
ticket 18483. Patch by teor.
|
||||
|
||||
o Minor features (controller):
|
||||
- Add 'GETINFO exit-policy/reject-private/[default,relay]', so
|
||||
controllers can examine the the reject rules added by
|
||||
ExitPolicyRejectPrivate. This makes it easier for stem to display
|
||||
exit policies.
|
||||
- Adds the FallbackDir entries to 'GETINFO config/defaults'. Closes
|
||||
tickets 16774 and 17817. Patch by George Tankersley.
|
||||
- New 'GETINFO hs/service/desc/id/' command to retrieve a hidden
|
||||
service descriptor from a service's local hidden service
|
||||
descriptor cache. Closes ticket 14846.
|
||||
|
||||
o Minor features (crypto):
|
||||
- Add SHA3 and SHAKE support to crypto.c. Closes ticket 17783.
|
||||
- Add SHA512 support to crypto.c. Closes ticket 17663; patch from
|
||||
George Tankersley.
|
||||
- Improve performance when hashing non-multiple of 8 sized buffers,
|
||||
based on Andrew Moon's public domain SipHash-2-4 implementation.
|
||||
Fixes bug 17544; bugfix on 0.2.5.3-alpha.
|
||||
- Validate the hard-coded Diffie-Hellman parameters and ensure that
|
||||
p is a safe prime, and g is a suitable generator. Closes
|
||||
ticket 18221.
|
||||
- When allocating a digest state object, allocate no more space than
|
||||
we actually need. Previously, we would allocate as much space as
|
||||
the state for the largest algorithm would need. This change saves
|
||||
up to 672 bytes per circuit. Closes ticket 17796.
|
||||
|
||||
o Minor features (directory downloads):
|
||||
- Add UseDefaultFallbackDirs, which enables any hard-coded fallback
|
||||
directory mirrors. The default is 1; set it to 0 to disable
|
||||
fallbacks. Implements ticket 17576. Patch by teor.
|
||||
- Wait for busy authorities and fallback directories to become non-
|
||||
busy when bootstrapping. (A similar change was made in 6c443e987d
|
||||
for directory caches chosen from the consensus.) Closes ticket
|
||||
17864; patch by teor.
|
||||
|
||||
o Minor features (geoip):
|
||||
- Update geoip and geoip6 to the July 6 2016 Maxmind GeoLite2
|
||||
Country database.
|
||||
|
||||
o Minor features (hidden service directory):
|
||||
- Streamline relay-side hsdir handling: when relays consider whether
|
||||
to accept an uploaded hidden service descriptor, they no longer
|
||||
check whether they are one of the relays in the network that is
|
||||
"supposed" to handle that descriptor. Implements ticket 18332.
|
||||
|
||||
o Minor features (IPv6):
|
||||
- Add ClientPreferIPv6DirPort, which is set to 0 by default. If set
|
||||
to 1, tor prefers IPv6 directory addresses.
|
||||
- Add ClientUseIPv4, which is set to 1 by default. If set to 0, tor
|
||||
avoids using IPv4 for client OR and directory connections.
|
||||
- Add address policy assume_action support for IPv6 addresses.
|
||||
- Add an argument 'ipv6=address:orport' to the DirAuthority and
|
||||
FallbackDir torrc options, to specify an IPv6 address for an
|
||||
authority or fallback directory. Add hard-coded ipv6 addresses for
|
||||
directory authorities that have them. Closes ticket 17327; patch
|
||||
from Nick Mathewson and teor.
|
||||
- Allow users to configure directory authorities and fallback
|
||||
directory servers with IPv6 addresses and ORPorts. Resolves
|
||||
ticket 6027.
|
||||
- Limit IPv6 mask bits to 128.
|
||||
- Make tor_ersatz_socketpair work on IPv6-only systems. Fixes bug
|
||||
17638; bugfix on 0.0.2pre8. Patch by teor.
|
||||
- Try harder to obey the IP version restrictions "ClientUseIPv4 0",
|
||||
"ClientUseIPv6 0", "ClientPreferIPv6ORPort", and
|
||||
"ClientPreferIPv6DirPort". Closes ticket 17840; patch by teor.
|
||||
- Warn when comparing against an AF_UNSPEC address in a policy, it's
|
||||
almost always a bug. Closes ticket 17863; patch by teor.
|
||||
- routerset_parse now accepts IPv6 literal addresses. Fixes bug
|
||||
17060; bugfix on 0.2.1.3-alpha. Patch by teor.
|
||||
|
||||
o Minor features (Linux seccomp2 sandbox):
|
||||
- Reject attempts to change our Address with "Sandbox 1" enabled.
|
||||
Changing Address with Sandbox turned on would never actually work,
|
||||
but previously it would fail in strange and confusing ways. Found
|
||||
while fixing 18548.
|
||||
|
||||
o Minor features (logging):
|
||||
- When logging to syslog, allow a tag to be added to the syslog
|
||||
identity (the string prepended to every log message). The tag can
|
||||
be configured with SyslogIdentityTag and defaults to none. Setting
|
||||
it to "foo" will cause logs to be tagged as "Tor-foo". Closes
|
||||
ticket 17194.
|
||||
|
||||
o Minor features (portability):
|
||||
- Use timingsafe_memcmp() where available. Closes ticket 17944;
|
||||
patch from <logan@hackers.mu>.
|
||||
|
||||
o Minor features (relay, address discovery):
|
||||
- Add a family argument to get_interface_addresses_raw() and
|
||||
subfunctions to make network interface address interogation more
|
||||
efficient. Now Tor can specifically ask for IPv4, IPv6 or both
|
||||
types of interfaces from the operating system. Resolves
|
||||
ticket 17950.
|
||||
- When get_interface_address6_list(.,AF_UNSPEC,.) is called and
|
||||
fails to enumerate interface addresses using the platform-specific
|
||||
API, have it rely on the UDP socket fallback technique to try and
|
||||
find out what IP addresses (both IPv4 and IPv6) our machine has.
|
||||
Resolves ticket 17951.
|
||||
|
||||
o Minor features (replay cache):
|
||||
- The replay cache now uses SHA256 instead of SHA1. Implements
|
||||
feature 8961. Patch by teor, issue reported by rransom.
|
||||
|
||||
o Minor features (robustness):
|
||||
- Exit immediately with an error message if the code attempts to use
|
||||
Libevent without having initialized it. This should resolve some
|
||||
frequently-made mistakes in our unit tests. Closes ticket 18241.
|
||||
|
||||
o Minor features (security, clock):
|
||||
- Warn when the system clock appears to move back in time (when the
|
||||
state file was last written in the future). Tor doesn't know that
|
||||
consensuses have expired if the clock is in the past. Patch by
|
||||
teor. Implements ticket 17188.
|
||||
|
||||
o Minor features (security, exit policies):
|
||||
- ExitPolicyRejectPrivate now rejects more private addresses by
|
||||
default. Specifically, it now rejects the relay's outbound bind
|
||||
addresses (if configured), and the relay's configured port
|
||||
addresses (such as ORPort and DirPort). Fixes bug 17027; bugfix on
|
||||
0.2.0.11-alpha. Patch by teor.
|
||||
|
||||
o Minor features (security, memory erasure):
|
||||
- Make memwipe() do nothing when passed a NULL pointer or buffer of
|
||||
zero size. Check size argument to memwipe() for underflow. Fixes
|
||||
bug 18089; bugfix on 0.2.3.25 and 0.2.4.6-alpha. Reported by "gk",
|
||||
patch by teor.
|
||||
- Set the unused entries in a smartlist to NULL. This helped catch
|
||||
a (harmless) bug, and shouldn't affect performance too much.
|
||||
Implements ticket 17026.
|
||||
- Use SecureMemoryWipe() function to securely clean memory on
|
||||
Windows. Previously we'd use OpenSSL's OPENSSL_cleanse() function.
|
||||
Implements feature 17986.
|
||||
- Use explicit_bzero or memset_s when present. Previously, we'd use
|
||||
OpenSSL's OPENSSL_cleanse() function. Closes ticket 7419; patches
|
||||
from <logan@hackers.mu> and <selven@hackers.mu>.
|
||||
|
||||
o Minor features (security, RNG):
|
||||
- Adjust Tor's use of OpenSSL's RNG APIs so that they absolutely,
|
||||
positively are not allowed to fail. Previously we depended on
|
||||
internal details of OpenSSL's behavior. Closes ticket 17686.
|
||||
- Never use the system entropy output directly for anything besides
|
||||
seeding the PRNG. When we want to generate important keys, instead
|
||||
of using system entropy directly, we now hash it with the PRNG
|
||||
stream. This may help resist certain attacks based on broken OS
|
||||
entropy implementations. Closes part of ticket 17694.
|
||||
- Use modern system calls (like getentropy() or getrandom()) to
|
||||
generate strong entropy on platforms that have them. Closes
|
||||
ticket 13696.
|
||||
|
||||
o Minor features (security, win32):
|
||||
- Set SO_EXCLUSIVEADDRUSE on Win32 to avoid a local port-stealing
|
||||
attack. Fixes bug 18123; bugfix on all tor versions. Patch
|
||||
by teor.
|
||||
|
||||
o Minor features (unix domain sockets):
|
||||
- Add a new per-socket option, RelaxDirModeCheck, to allow creating
|
||||
Unix domain sockets without checking the permissions on the parent
|
||||
directory. (Tor checks permissions by default because some
|
||||
operating systems only check permissions on the parent directory.
|
||||
However, some operating systems do look at permissions on the
|
||||
socket, and tor's default check is unneeded.) Closes ticket 18458.
|
||||
Patch by weasel.
|
||||
|
||||
o Minor features (unix file permissions):
|
||||
- Defer creation of Unix sockets until after setuid. This avoids
|
||||
needing CAP_CHOWN and CAP_FOWNER when using systemd's
|
||||
CapabilityBoundingSet, or chown and fowner when using SELinux.
|
||||
Implements part of ticket 17562. Patch from Jamie Nguyen.
|
||||
- If any directory created by Tor is marked as group readable, the
|
||||
filesystem group is allowed to be either the default GID or the
|
||||
root user. Allowing root to read the DataDirectory prevents the
|
||||
need for CAP_READ_SEARCH when using systemd's
|
||||
CapabilityBoundingSet, or dac_read_search when using SELinux.
|
||||
Implements part of ticket 17562. Patch from Jamie Nguyen.
|
||||
- Introduce a new DataDirectoryGroupReadable option. If it is set to
|
||||
1, the DataDirectory will be made readable by the default GID.
|
||||
Implements part of ticket 17562. Patch from Jamie Nguyen.
|
||||
|
||||
o Minor bugfixes (accounting):
|
||||
- The max bandwidth when using 'AccountRule sum' is now correctly
|
||||
logged. Fixes bug 18024; bugfix on 0.2.6.1-alpha. Patch
|
||||
from "unixninja92".
|
||||
|
||||
o Minor bugfixes (assert, portability):
|
||||
- Fix an assertion failure in memarea.c on systems where "long" is
|
||||
shorter than the size of a pointer. Fixes bug 18716; bugfix
|
||||
on 0.2.1.1-alpha.
|
||||
|
||||
o Minor bugfixes (bootstrap):
|
||||
- Consistently use the consensus download schedule for authority
|
||||
certificates. Fixes bug 18816; bugfix on 0.2.4.13-alpha.
|
||||
|
||||
o Minor bugfixes (build):
|
||||
- Avoid spurious failures from configure files related to calling
|
||||
exit(0) in TOR_SEARCH_LIBRARY. Fixes bug 18625; bugfix on
|
||||
0.2.0.1-alpha. Patch from "cypherpunks".
|
||||
- Do not link the unit tests against both the testing and non-
|
||||
testing versions of the static libraries. Fixes bug 18490; bugfix
|
||||
on 0.2.7.1-alpha.
|
||||
- Resolve warnings when building on systems that are concerned with
|
||||
signed char. Fixes bug 18728; bugfix on 0.2.7.2-alpha
|
||||
and 0.2.6.1-alpha.
|
||||
- Silence spurious clang-scan warnings in the ed25519_donna code by
|
||||
explicitly initializing some objects. Fixes bug 18384; bugfix on
|
||||
0.2.7.2-alpha. Patch by teor.
|
||||
- When libscrypt.h is found, but no libscrypt library can be linked,
|
||||
treat libscrypt as absent. Fixes bug 19161; bugfix
|
||||
on 0.2.6.1-alpha.
|
||||
- Cause the unit tests to compile correctly on mingw64 versions that
|
||||
lack sscanf. Fixes bug 19213; bugfix on 0.2.7.1-alpha.
|
||||
- Don't try to use the pthread_condattr_setclock() function unless
|
||||
it actually exists. Fixes compilation on NetBSD-6.x. Fixes bug
|
||||
17819; bugfix on 0.2.6.3-alpha.
|
||||
- Fix backtrace compilation on FreeBSD. Fixes bug 17827; bugfix
|
||||
on 0.2.5.2-alpha.
|
||||
- Fix search for libevent libraries on OpenBSD (and other systems
|
||||
that install libevent 1 and libevent 2 in parallel). Fixes bug
|
||||
16651; bugfix on 0.1.0.7-rc. Patch from "rubiate".
|
||||
- Isolate environment variables meant for tests from the rest of the
|
||||
build system. Fixes bug 17818; bugfix on 0.2.7.3-rc.
|
||||
- Mark all object files that include micro-revision.i as depending
|
||||
on it, so as to make parallel builds more reliable. Fixes bug
|
||||
17826; bugfix on 0.2.5.1-alpha.
|
||||
- Remove config.log only from make distclean, not from make clean.
|
||||
Fixes bug 17924; bugfix on 0.2.4.1-alpha.
|
||||
- Replace usage of 'INLINE' with 'inline'. Fixes bug 17804; bugfix
|
||||
on 0.0.2pre8.
|
||||
- Remove an #endif from configure.ac so that we correctly detect the
|
||||
presence of in6_addr.s6_addr32. Fixes bug 17923; bugfix
|
||||
on 0.2.0.13-alpha.
|
||||
|
||||
o Minor bugfixes (client, bootstrap):
|
||||
- Count receipt of new microdescriptors as progress towards
|
||||
bootstrapping. Previously, with EntryNodes set, Tor might not
|
||||
successfully repopulate the guard set on bootstrapping. Fixes bug
|
||||
16825; bugfix on 0.2.3.1-alpha.
|
||||
|
||||
o Minor bugfixes (code correctness):
|
||||
- Fix a bad memory handling bug that would occur if we had queued a
|
||||
cell on a channel's incoming queue. Fortunately, we can't actually
|
||||
queue a cell like that as our code is constructed today, but it's
|
||||
best to avoid this kind of error, even if there isn't any code
|
||||
that triggers it today. Fixes bug 18570; bugfix on 0.2.4.4-alpha.
|
||||
- Assert that allocated memory held by the reputation code is freed
|
||||
according to its internal counters. Fixes bug 17753; bugfix
|
||||
on 0.1.1.1-alpha.
|
||||
- Assert when the TLS contexts fail to initialize. Fixes bug 17683;
|
||||
bugfix on 0.0.6.
|
||||
- Update to the latest version of Trunnel, which tries harder to
|
||||
avoid generating code that can invoke memcpy(p,NULL,0). Bug found
|
||||
by clang address sanitizer. Fixes bug 18373; bugfix
|
||||
on 0.2.7.2-alpha.
|
||||
- When closing an entry connection, generate a warning if we should
|
||||
have sent an end cell for it but we haven't. Fixes bug 17876;
|
||||
bugfix on 0.2.3.2-alpha.
|
||||
|
||||
o Minor bugfixes (configuration):
|
||||
- Fix a tiny memory leak when parsing a port configuration ending in
|
||||
":auto". Fixes bug 18374; bugfix on 0.2.3.3-alpha.
|
||||
|
||||
o Minor bugfixes (containers):
|
||||
- If we somehow attempt to construct a heap with more than
|
||||
1073741822 elements, avoid an integer overflow when maintaining
|
||||
the heap property. Fixes bug 18296; bugfix on 0.1.2.1-alpha.
|
||||
|
||||
o Minor bugfixes (controller, microdescriptors):
|
||||
- Make GETINFO dir/status-vote/current/consensus conform to the
|
||||
control specification by returning "551 Could not open cached
|
||||
consensus..." when not caching consensuses. Fixes bug 18920;
|
||||
bugfix on 0.2.2.6-alpha.
|
||||
|
||||
o Minor bugfixes (crypto):
|
||||
- Check the return value of HMAC() and assert on failure. Fixes bug
|
||||
17658; bugfix on 0.2.3.6-alpha. Patch by teor.
|
||||
|
||||
o Minor bugfixes (directories):
|
||||
- When fetching extrainfo documents, compare their SHA256 digests
|
||||
and Ed25519 signing key certificates with the routerinfo that led
|
||||
us to fetch them, rather than with the most recent routerinfo.
|
||||
Otherwise we generate many spurious warnings about mismatches.
|
||||
Fixes bug 17150; bugfix on 0.2.7.2-alpha.
|
||||
- When generating a URL for a directory server on an IPv6 address,
|
||||
wrap the IPv6 address in square brackets. Fixes bug 18051; bugfix
|
||||
on 0.2.3.9-alpha. Patch from Malek.
|
||||
|
||||
o Minor bugfixes (downloading):
|
||||
- Predict more correctly whether we'll be downloading over HTTP when
|
||||
we determine the maximum length of a URL. This should avoid a
|
||||
"BUG" warning about the Squid HTTP proxy and its URL limits. Fixes
|
||||
bug 19191.
|
||||
|
||||
o Minor bugfixes (exit policies, security):
|
||||
- Refresh an exit relay's exit policy when interface addresses
|
||||
change. Previously, tor only refreshed the exit policy when the
|
||||
configured external address changed. Fixes bug 18208; bugfix on
|
||||
0.2.7.3-rc. Patch by teor.
|
||||
|
||||
o Minor bugfixes (fallback directories):
|
||||
- Mark fallbacks as "too busy" when they return a 503 response,
|
||||
rather than just marking authorities. Fixes bug 17572; bugfix on
|
||||
0.2.4.7-alpha. Patch by teor.
|
||||
- When requesting extrainfo descriptors from a trusted directory
|
||||
server, check whether it is an authority or a fallback directory
|
||||
which supports extrainfo descriptors. Fixes bug 18489; bugfix on
|
||||
0.2.4.7-alpha. Reported by atagar, patch by teor.
|
||||
|
||||
o Minor bugfixes (hidden service, client):
|
||||
- Handle the case where the user makes several fast consecutive
|
||||
requests to the same .onion address. Previously, the first six
|
||||
requests would each trigger a descriptor fetch, each picking a
|
||||
directory (there are 6 overall) and the seventh one would fail
|
||||
because no directories were left, thereby triggering a close on
|
||||
all current directory connections asking for the hidden service.
|
||||
The solution here is to not close the connections if we have
|
||||
pending directory fetches. Fixes bug 15937; bugfix
|
||||
on 0.2.7.1-alpha.
|
||||
|
||||
o Minor bugfixes (hidden service, control port):
|
||||
- Add the onion address to the HS_DESC event for the UPLOADED action
|
||||
both on success or failure. It was previously hardcoded with
|
||||
UNKNOWN. Fixes bug 16023; bugfix on 0.2.7.2-alpha.
|
||||
|
||||
o Minor bugfixes (hidden service, directory):
|
||||
- Bridges now refuse "rendezvous2" (hidden service descriptor)
|
||||
publish attempts. Suggested by ticket 18332.
|
||||
|
||||
o Minor bugfixes (IPv6):
|
||||
- Update the limits in max_dl_per_request for IPv6 address length.
|
||||
Fixes bug 17573; bugfix on 0.2.1.5-alpha.
|
||||
|
||||
o Minor bugfixes (Linux seccomp2 sandbox):
|
||||
- Allow more syscalls when running with "Sandbox 1" enabled:
|
||||
sysinfo, getsockopt(SO_SNDBUF), and setsockopt(SO_SNDBUFFORCE). On
|
||||
some systems, these are required for Tor to start. Fixes bug
|
||||
18397; bugfix on 0.2.5.1-alpha. Patch from Daniel Pinto.
|
||||
- Allow IPPROTO_UDP datagram sockets when running with "Sandbox 1",
|
||||
so that get_interface_address6_via_udp_socket_hack() can work.
|
||||
Fixes bug 19660; bugfix on 0.2.5.1-alpha.
|
||||
- Allow the setrlimit syscall, and the prlimit and prlimit64
|
||||
syscalls, which some libc implementations use under the hood.
|
||||
Fixes bug 15221; bugfix on 0.2.5.1-alpha.
|
||||
- Avoid a 10-second delay when starting as a client with "Sandbox 1"
|
||||
enabled and no DNS resolvers configured. This should help TAILS
|
||||
start up faster. Fixes bug 18548; bugfix on 0.2.5.1-alpha.
|
||||
- Fix a crash when using offline master ed25519 keys with the Linux
|
||||
seccomp2 sandbox enabled. Fixes bug 17675; bugfix on 0.2.7.3-rc.
|
||||
- Allow statistics to be written to disk when "Sandbox 1" is
|
||||
enabled. Fixes bugs 19556 and 19957; bugfix on 0.2.5.1-alpha and
|
||||
0.2.6.1-alpha respectively.
|
||||
|
||||
o Minor bugfixes (logging):
|
||||
- In log messages that include a function name, use __FUNCTION__
|
||||
instead of __PRETTY_FUNCTION__. In GCC, these are synonymous, but
|
||||
with clang __PRETTY_FUNCTION__ has extra information we don't
|
||||
need. Fixes bug 16563; bugfix on 0.0.2pre8. Fix by Tom van
|
||||
der Woerdt.
|
||||
- Remove needless quotes from a log message about unparseable
|
||||
addresses. Fixes bug 17843; bugfix on 0.2.3.3-alpha.
|
||||
- Scrub service name in "unrecognized service ID" log messages.
|
||||
Fixes bug 18600; bugfix on 0.2.4.11-alpha.
|
||||
- When logging information about an unparsable networkstatus vote or
|
||||
consensus, do not say "vote" when we mean consensus. Fixes bug
|
||||
18368; bugfix on 0.2.0.8-alpha.
|
||||
- When we can't generate a signing key because OfflineMasterKey is
|
||||
set, do not imply that we should have been able to load it. Fixes
|
||||
bug 18133; bugfix on 0.2.7.2-alpha.
|
||||
- When logging a malformed hostname received through socks4, scrub
|
||||
it if SafeLogging says we should. Fixes bug 17419; bugfix
|
||||
on 0.1.1.16-rc.
|
||||
|
||||
o Minor bugfixes (memory safety):
|
||||
- Avoid freeing an uninitialized pointer when opening a socket fails
|
||||
in get_interface_addresses_ioctl(). Fixes bug 18454; bugfix on
|
||||
0.2.3.11-alpha. Reported by toralf and "cypherpunks", patch
|
||||
by teor.
|
||||
- Fix a memory leak in "tor --list-fingerprint". Fixes part of bug
|
||||
18672; bugfix on 0.2.5.1-alpha.
|
||||
- Fix a memory leak in tor-gencert. Fixes part of bug 18672; bugfix
|
||||
on 0.2.0.1-alpha.
|
||||
|
||||
o Minor bugfixes (pluggable transports):
|
||||
- Avoid reporting a spurious error when we decide that we don't need
|
||||
to terminate a pluggable transport because it has already exited.
|
||||
Fixes bug 18686; bugfix on 0.2.5.5-alpha.
|
||||
|
||||
o Minor bugfixes (pointer arithmetic):
|
||||
- Fix a bug in memarea_alloc() that could have resulted in remote
|
||||
heap write access, if Tor had ever passed an unchecked size to
|
||||
memarea_alloc(). Fortunately, all the sizes we pass to
|
||||
memarea_alloc() are pre-checked to be less than 128 kilobytes.
|
||||
Fixes bug 19150; bugfix on 0.2.1.1-alpha. Bug found by
|
||||
Guido Vranken.
|
||||
|
||||
o Minor bugfixes (private directory):
|
||||
- Prevent a race condition when creating private directories. Fixes
|
||||
part of bug 17852; bugfix on 0.0.2pre13. Part of ticket 17852.
|
||||
Patch from jsturgix. Found with Flawfinder.
|
||||
|
||||
o Minor bugfixes (relays):
|
||||
- Check that both the ORPort and DirPort (if present) are reachable
|
||||
before publishing a relay descriptor. Otherwise, relays publish a
|
||||
descriptor with DirPort 0 when the DirPort reachability test takes
|
||||
longer than the ORPort reachability test. Fixes bug 18050; bugfix
|
||||
on 0.1.0.1-rc. Reported by "starlight", patch by teor.
|
||||
- Resolve some edge cases where we might launch an ORPort
|
||||
reachability check even when DisableNetwork is set. Noticed while
|
||||
fixing bug 18616; bugfix on 0.2.3.9-alpha.
|
||||
|
||||
o Minor bugfixes (relays, hidden services):
|
||||
- Refuse connection requests to private OR addresses unless
|
||||
ExtendAllowPrivateAddresses is set. Previously, tor would connect,
|
||||
then refuse to send any cells to a private address. Fixes bugs
|
||||
17674 and 8976; bugfix on 0.2.3.21-rc. Patch by teor.
|
||||
|
||||
o Minor bugfixes (security, hidden services):
|
||||
- Prevent hidden services connecting to client-supplied rendezvous
|
||||
addresses that are reserved as internal or multicast. Fixes bug
|
||||
8976; bugfix on 0.2.3.21-rc. Patch by dgoulet and teor.
|
||||
|
||||
o Minor bugfixes (statistics):
|
||||
- Consistently check for overflow in round_*_to_next_multiple_of
|
||||
functions, and add unit tests with additional and maximal values.
|
||||
Fixes part of bug 13192; bugfix on 0.2.2.1-alpha.
|
||||
- Handle edge cases in the laplace functions: avoid division by
|
||||
zero, avoid taking the log of zero, and silence clang type
|
||||
conversion warnings using round and trunc. Add unit tests for edge
|
||||
cases with maximal values. Fixes part of bug 13192; bugfix
|
||||
on 0.2.6.2-alpha.
|
||||
- We now include consensus downloads via IPv6 in our directory-
|
||||
request statistics. Fixes bug 18460; bugfix on 0.2.3.14-alpha.
|
||||
|
||||
o Minor bugfixes (test networks, IPv6):
|
||||
- Allow internal IPv6 addresses in descriptors in test networks.
|
||||
Fixes bug 17153; bugfix on 0.2.3.16-alpha. Patch by teor, reported
|
||||
by karsten.
|
||||
|
||||
o Minor bugfixes (testing):
|
||||
- Check the full results of SHA256 and SHA512 digests in the unit
|
||||
tests. Bugfix on 0.2.2.4-alpha. Patch by teor.
|
||||
- Fix a memory leak in the ntor test. Fixes bug 17778; bugfix
|
||||
on 0.2.4.8-alpha.
|
||||
- Fix a small memory leak that would occur when the
|
||||
TestingEnableCellStatsEvent option was turned on. Fixes bug 18673;
|
||||
bugfix on 0.2.5.2-alpha.
|
||||
- Make unit tests pass on IPv6-only systems, and systems without
|
||||
localhost addresses (like some FreeBSD jails). Fixes bug 17632;
|
||||
bugfix on 0.2.7.3-rc. Patch by teor.
|
||||
- The test for log_heartbeat was incorrectly failing in timezones
|
||||
with non-integer offsets. Instead of comparing the end of the time
|
||||
string against a constant, compare it to the output of
|
||||
format_local_iso_time when given the correct input. Fixes bug
|
||||
18039; bugfix on 0.2.5.4-alpha.
|
||||
- We no longer disable assertions in the unit tests when coverage is
|
||||
enabled. Instead, we require you to say --disable-asserts-in-tests
|
||||
to the configure script if you need assertions disabled in the
|
||||
unit tests (for example, if you want to perform branch coverage).
|
||||
Fixes bug 18242; bugfix on 0.2.7.1-alpha.
|
||||
|
||||
o Minor bugfixes (time handling):
|
||||
- When correcting a corrupt 'struct tm' value, fill in the tm_wday
|
||||
field. Otherwise, our unit tests crash on Windows. Fixes bug
|
||||
18977; bugfix on 0.2.2.25-alpha.
|
||||
- Avoid overflow in tor_timegm when parsing dates in and after 2038
|
||||
on platforms with 32-bit time_t. Fixes bug 18479; bugfix on
|
||||
0.0.2pre14. Patch by teor.
|
||||
|
||||
o Minor bugfixes (tor-gencert):
|
||||
- Correctly handle the case where an authority operator enters a
|
||||
passphrase but sends an EOF before sending a newline. Fixes bug
|
||||
17443; bugfix on 0.2.0.20-rc. Found by junglefowl.
|
||||
|
||||
o Code simplification and refactoring:
|
||||
- Clean up a little duplicated code in
|
||||
crypto_expand_key_material_TAP(). Closes ticket 17587; patch
|
||||
from "pfrankw".
|
||||
- Decouple the list of streams waiting to be attached to circuits
|
||||
from the overall connection list. This change makes it possible to
|
||||
attach streams quickly while simplifying Tor's callgraph and
|
||||
avoiding O(N) scans of the entire connection list. Closes
|
||||
ticket 17590.
|
||||
- Extract the more complicated parts of circuit_mark_for_close()
|
||||
into a new function that we run periodically before circuits are
|
||||
freed. This change removes more than half of the functions
|
||||
currently in the "blob". Closes ticket 17218.
|
||||
- Move logging of redundant policy entries in
|
||||
policies_parse_exit_policy_internal into its own function. Closes
|
||||
ticket 17608; patch from "juce".
|
||||
- Quote all the string interpolations in configure.ac -- even those
|
||||
which we are pretty sure can't contain spaces. Closes ticket
|
||||
17744. Patch from zerosion.
|
||||
- Remove code for configuring OpenSSL dynamic locks; OpenSSL doesn't
|
||||
use them. Closes ticket 17926.
|
||||
- Remove specialized code for non-inplace AES_CTR. 99% of our AES is
|
||||
inplace, so there's no need to have a separate implementation for
|
||||
the non-inplace code. Closes ticket 18258. Patch from Malek.
|
||||
- Simplify return types for some crypto functions that can't
|
||||
actually fail. Patch from Hassan Alsibyani. Closes ticket 18259.
|
||||
- When a direct directory request fails immediately on launch,
|
||||
instead of relaunching that request from inside the code that
|
||||
launches it, instead mark the connection for teardown. This change
|
||||
simplifies Tor's callback and prevents the directory-request
|
||||
launching code from invoking itself recursively. Closes
|
||||
ticket 17589.
|
||||
|
||||
o Documentation:
|
||||
- Add a description of the correct use of the '--keygen' command-
|
||||
line option. Closes ticket 17583; based on text by 's7r'.
|
||||
- Change build messages to refer to "Fedora" instead of "Fedora
|
||||
Core", and "dnf" instead of "yum". Closes tickets 18459 and 18426.
|
||||
Patches from "icanhasaccount" and "cypherpunks".
|
||||
- Document the contents of the 'datadir/keys' subdirectory in the
|
||||
manual page. Closes ticket 17621.
|
||||
- Document the minimum HeartbeatPeriod value. Closes ticket 15638.
|
||||
- Explain actual minima for BandwidthRate. Closes ticket 16382.
|
||||
- Fix a minor formatting typo in the manpage. Closes ticket 17791.
|
||||
- Mention torspec URL in the manpage and point the reader to it
|
||||
whenever we mention a document that belongs in torspce. Fixes
|
||||
issue 17392.
|
||||
- Stop recommending use of nicknames to identify relays in our
|
||||
MapAddress documentation. Closes ticket 18312.
|
||||
|
||||
o Removed features:
|
||||
- Remove client-side support for connecting to Tor relays running
|
||||
versions of Tor before 0.2.3.6-alpha. These relays didn't support
|
||||
the v3 TLS handshake protocol, and are no longer allowed on the
|
||||
Tor network. Implements the client side of ticket 11150. Based on
|
||||
patches by Tom van der Woerdt.
|
||||
- We no longer maintain an internal freelist in memarea.c.
|
||||
Allocators should be good enough to make this code unnecessary,
|
||||
and it's doubtful that it ever had any performance benefit.
|
||||
|
||||
o Testing:
|
||||
- Add unit tests to check for common RNG failure modes, such as
|
||||
returning all zeroes, identical values, or incrementing values
|
||||
(OpenSSL's rand_predictable feature). Patch by teor.
|
||||
- Always test both ed25519 backends, so that we can be sure that our
|
||||
batch-open replacement code works. Part of ticket 16794.
|
||||
- Cover dns_resolve_impl() in dns.c with unit tests. Implements a
|
||||
portion of ticket 16831.
|
||||
- Fix several warnings from clang's address sanitizer produced in
|
||||
the unit tests.
|
||||
- Log more information when the backtrace tests fail. Closes ticket
|
||||
17892. Patch from "cypherpunks."
|
||||
- More unit tests for compat_libevent.c, procmon.c, tortls.c,
|
||||
util_format.c, directory.c, and options_validate.c. Closes tickets
|
||||
17075, 17082, 17084, 17003, and 17076 respectively. Patches from
|
||||
Ola Bini.
|
||||
- Treat backtrace test failures as expected on FreeBSD until we
|
||||
solve bug 17808. Closes ticket 18204.
|
||||
- Unit tests for directory_handle_command_get. Closes ticket 17004.
|
||||
Patch from Reinaldo de Souza Jr.
|
||||
|
||||
|
||||
Changes in version 0.2.7.6 - 2015-12-10
|
||||
Tor version 0.2.7.6 fixes a major bug in entry guard selection, as
|
||||
well as a minor bug in hidden service reliability.
|
||||
|
Loading…
Reference in New Issue
Block a user