aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2019-11-09Update geoip and geoip6 to the November 6 2019 database.Karsten Loesing
2019-11-06Merge remote-tracking branch 'tor-github/pr/1342' into maint-0.2.9teor
2019-11-06Merge remote-tracking branch 'tor-github/pr/1330' into maint-0.2.9teor
2019-10-23Merge remote-tracking branch 'tor-github/pr/1178' into maint-0.2.9teor
2019-10-02Update geoip and geoip6 to the October 1 2019 database.Karsten Loesing
2019-09-18Add a rate-limit to our warning about the disabled .exit notationNick Mathewson
This warning would previously be given every time we tried to open a connection to a foo.exit address, which could potentially be used to flood the logs. Now, we don't allow this warning to appear more than once every 15 minutes. Fixes bug 31466; bugfix on 0.2.2.1-alpha, when .exit was first deprecated.
2019-09-17Treat an unexpected constant-sized VERSIONS cell as a PROTOCOL_WARN.Nick Mathewson
We previously used tor_fragile_assert() to declare that this case could not happen: VERSIONS cells are always supposed to be variable-sized, right? This is incorrect, though. On a v1 link protocol connection, all cells are fixed-sized. There aren't supposed to be any VERSIONS cells with this version of the protocol, but apparently, somebody was messing up. (The v1 link protocol is obsolete, so probably the implementer responsible didn't mean to be using it.) Fixes bug 31107. Bugfix on 0.2.4.4-alpha, when we introduced a tor_fragile_assert() for this case.
2019-09-09build: The <sys/sysctl.h> is now deprecated on LinuxDavid Goulet
Closes #31673
2019-08-15dirauth: Change dizum IP addressDavid Goulet
New IP address from 194.109.206.212 to 45.66.33.45. Signed request from Alex de Joode, operator of dizum: https://trac.torproject.org/projects/tor/ticket/31406 Published descriptor by dizum on August 12th, 2019: -- r dizum fqbq1v2DCDxTj0QDi7+gd1h911U GZmZtCLaPDQNxkhIFj8UcgTRAuA 2019-08-12 15:28:40 45.66.33.45 443 80 s Authority Fast Running Stable V2Dir Valid v Tor 0.4.0.5 pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 w Bandwidth=20 Unmeasured=1 p reject 1-65535 -- Finally, confirmed by DNS: $ dig +short tor.dizum.com 45.66.33.45 Closes #31406 Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-08-10Merge remote-tracking branch 'tor-github/pr/1078' into maint-0.2.9teor
2019-08-10Merge remote-tracking branch 'tor-github/pr/1052' into maint-0.2.9teor
2019-08-10Merge remote-tracking branch 'tor-github/pr/1229' into maint-0.2.9teor
2019-08-10Modify "Protect buffers against INT_MAX datalen overflows." for 0.2.9Nick Mathewson
2019-08-09Merge remote-tracking branch 'tor-github/pr/762' into maint-0.2.9teor
2019-08-09Merge remote-tracking branch 'tor-github/pr/957' into maint-0.2.9teor
2019-08-09Merge remote-tracking branch 'tor-github/pr/1221' into combined31343_31374_029teor
2019-08-08Fix a warning about casting the results of GetProcAddress.Nick Mathewson
Fixes bug 31374; bugfix on 0.2.9.1-alpha.
2019-08-08Fix another time_t/long warning for 31343.Nick Mathewson
2019-08-08Restore proper behavior of netinfo skew checkNick Mathewson
My previous fix removed a comparison, which would have caused us to warn about every skew instead of skews of over an hour.
2019-08-06Avoid using labs() on time_t in channeltls.cNick Mathewson
On some windows builds, time_t is 64 bits but long is not. This is causing appveyor builds to fail. Also, one of our uses of labs() on time_t was logically incorrect: it was telling us to accept NETINFO cells up to three minutes _before_ the message they were responding to, which doesn't make sense. This patch adds a time_abs() function that we should eventually move to intmath.h or something. For now, though, it will make merges easier to have it file-local in channeltls.c. Fixes bug 31343; bugfix on 0.2.4.4-alpha.
2019-07-19Prevent UB on signed overflow.Tobias Stoeckmann
Overflowing a signed integer in C is an undefined behaviour. It is possible to trigger this undefined behaviour in tor_asprintf on Windows or systems lacking vasprintf. On these systems, eiter _vscprintf or vsnprintf is called to retrieve the required amount of bytes to hold the string. These functions can return INT_MAX. The easiest way to recreate this is the use of a specially crafted configuration file, e.g. containing the line: FirewallPorts AAAAA<in total 2147483610 As> This line triggers the needed tor_asprintf call which eventually leads to an INT_MAX return value from _vscprintf or vsnprintf. The needed byte for \0 is added to the result, triggering the overflow and therefore the undefined behaviour. Casting the value to size_t before addition fixes the behaviour. Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2019-06-28fallback: apply the second fallback list from 2019teor
Update the fallback directory mirrors by merging the current list with: fallback_dirs_2019-06-28-08-58-39_AU_f0437a39ddbc8459.inc Part of 28795, see that ticket for logs.
2019-06-28fallback: apply the first fallback list from 2019teor
Update the fallback directory mirrors by replacing the old list with: fallback_dirs_2019-06-25-11-49-10_AU_a37adb956fbb5cd2.inc Part of 28795, see that ticket for logs.
2019-06-11Update geoip and geoip6 to the June 10 2019 database.Karsten Loesing
2019-06-06dirparse: Stop crashing when parsing unknown descriptor purpose annotationsteor
We think this bug can only be triggered by modifying a local file. Fixes bug 30781; bugfix on 0.2.0.8-alpha.
2019-05-29Tweak comments in tor_vasprintf(), and add a changes file for 30651Nick Mathewson
2019-05-29Fixed tor_vasprintf on systems without vasprintf.Tobias Stoeckmann
If tor is compiled on a system with neither vasprintf nor _vscprintf, the fallback implementation exposes a logic flaw which prevents proper usage of strings longer than 127 characters: * tor_vsnprintf returns -1 if supplied buffer is not large enough, but tor_vasprintf uses this function to retrieve required length * the result of tor_vsnprintf is not properly checked for negative return values Both aspects together could in theory lead to exposure of uninitialized stack memory in the resulting string. This requires an invalid format string or data that exceeds integer limitations. Fortunately tor is not even able to run with this implementation because it runs into asserts early on during startup. Also the unit tests fail during a "make check" run. Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> [backported to 0.2.9 by nickm]
2019-05-17Update geoip and geoip6 to the May 13 2019 database.Karsten Loesing
2019-04-19Merge remote-tracking branch 'tor-github/pr/792' into maint-0.2.9teor
2019-04-19Merge remote-tracking branch 'tor-github/pr/772' into maint-0.2.9teor
2019-04-17test/relay: add a missing typedefteor
In 0.3.4 and later, these functions are declared in rephist.h: STATIC uint64_t find_largest_max(bw_array_t *b); STATIC void commit_max(bw_array_t *b); STATIC void advance_obs(bw_array_t *b); But in 0.2.9, they are declared in rephist.c and test_relay.c. So compilers fail with a "must use 'struct' tag" error. We add the missing struct typedef in test_relay.c, to match the declarations in rephist.c. (Merge commit 813019cc57 moves these functions into rephist.h instead.) Fixes bug 30184; not in any released version of Tor.
2019-04-16rephist: fix an undeclared type compilation errorteor
In 0.3.4 and later, we declare write_array as: extern struct bw_array_t *write_array; ... typedef struct bw_array_t bw_array_t; But in 0.2.9, we declare write_array as: typedef struct bw_array_t bw_array_t; extern bw_array_t *write_array; And then again in rephist.c: typedef struct bw_array_t bw_array_t; So some compilers fail with a duplicate declaration error. We backport 684b396ce5, which removes the duplicate declaration. And this commit deals with the undeclared type error. Backports a single line from merge commit 813019cc57. Fixes bug 30184; not in any released version of Tor.
2019-04-16Remove another needless typedefNick Mathewson
2019-04-09Check return value of buf_move_to_buf for error.Tobias Stoeckmann
If the concatenation of connection buffer and the buffer of linked connection exceeds INT_MAX bytes, then buf_move_to_buf returns -1 as an error value. This value is currently casted to size_t (variable n_read) and will erroneously lead to an increasement of variable "max_to_read". This in turn can be used to call connection_buf_read_from_socket to store more data inside the buffer than expected and clogging the connection buffer. If the linked connection buffer was able to overflow INT_MAX, the call of buf_move_to_buf would have previously internally triggered an integer overflow, corrupting the state of the connection buffer. Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2019-04-09Protect buffers against INT_MAX datalen overflows.Tobias Stoeckmann
Many buffer functions have a hard limit of INT_MAX for datalen, but this limitation is not enforced in all functions: - buf_move_all may exceed that limit with too many chunks - buf_move_to_buf exceeds that limit with invalid buf_flushlen argument - buf_new_with_data may exceed that limit (unit tests only) This patch adds some annotations in some buf_pos_t functions to guarantee that no out of boundary access could occur even if another function lacks safe guards against datalen overflows. [This is a backport of the submitted patch to 0.2.9, where the buf_move_to_buf and buf_new_with_data functions did not exist.]
2019-04-04Do not cache bogus results from classifying client ciphersNick Mathewson
When classifying a client's selection of TLS ciphers, if the client ciphers are not yet available, do not cache the result. Previously, we had cached the unavailability of the cipher list and never looked again, which in turn led us to assume that the client only supported the ancient V1 link protocol. This, in turn, was causing Stem integration tests to stall in some cases. Fixes bug 30021; bugfix on 0.2.4.8-alpha.
2019-04-03Update geoip and geoip6 to the April 2 2019 database.Karsten Loesing
2019-03-22test: Backport the 0.3.4 src/test/test-network.sh to 0.2.9teor
We need a recent test-network.sh to use new chutney features in CI. Fixes bug 29703; bugfix on 0.2.9.1-alpha.
2019-03-20Merge remote-tracking branch 'tor-github/pr/774' into maint-0.2.9teor
2019-03-18test/sr: Clear SRVs after init, and before setupteor
Already merged to 0.4.0 and later in tor-github/pr/776. Backported to 0.2.9 and later with minor comment changes. Part of 29706.
2019-03-14relays shouldn't close idle rend circuitsRoger Dingledine
Allow connections to single onion services to remain idle without being disconnected. Relays acting as rendezvous points for single onion services were mistakenly closing idle established rendezvous circuits after 60 seconds, thinking that they are unused directory-fetching circuits that had served their purpose. Fixes bug 29665; bugfix on 0.2.1.26.
2019-03-14Merge remote-tracking branch 'tor-github/pr/770' into maint-0.2.9teor
2019-03-14Merge remote-tracking branch 'tor-github/pr/765' into maint-0.2.9teor
2019-03-14Merge remote-tracking branch 'tor-github/pr/746' into maint-0.2.9teor
2019-03-14Merge remote-tracking branch 'tor-github/pr/510' into maint-0.2.9teor
2019-03-14Merge remote-tracking branch 'tor-github/pr/331' into maint-0.2.9teor
2019-03-09test/sr: Free SRVs before replacing them in test_sr_setup_srv()teor
Stop leaking parts of the shared random state in the shared-random unit tests. The previous fix in 29599 was incomplete. Fixes bug 29706; bugfix on 0.2.9.1-alpha.
2019-03-08hs-v2: Copy needed information between service on prunningDavid Goulet
Turns out that when reloading a tor configured with hidden service(s), we weren't copying all the needed information between the old service object to the new one. For instance, the desc_is_dirty timestamp wasn't which could lead to the service uploading its descriptor much later than it would need to. The replaycache wasn't also moved over and some intro point information as well. Fixes #23790 Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-03-08Make tor_addr_is_internal_() RFC6598 (Carrier Grade NAT) awareNeel Chauhan
Fixes 28525.
2019-03-06Update geoip and geoip6 to the March 4 2019 database.Karsten Loesing