aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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-09Merge remote-tracking branch 'tor-github/pr/1209' 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-08Hardcode the image into tor-exit-notice.htmlrl1987
2019-08-08Merge branch 'maint-0.2.9' into release-0.2.9teor
2019-08-08Merge remote-tracking branch 'tor-github/pr/1155' into maint-0.2.9teor
2019-08-08Merge remote-tracking branch 'tor-github/pr/991' into maint-0.2.9teor
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-19Changes file for bug 31001Nick Mathewson
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-07-01Merge branch 'maint-0.2.9' into release-0.2.9Nick Mathewson
2019-07-01Travis: remove a redundant os: linux lineteor
Linux is the first item in the os matrix, so we don't need to specify it under matrix: include: . Part of 29280.
2019-07-01Travis: show the chutney commit and python versionteor
Part of 29280.
2019-07-01Travis: show chutney logs on chutney job failureteor
Part of 29280.
2019-06-28changes: file for 28795teor
Replace the 157 fallbacks originally introduced in Tor 0.3.5.6-rc in December 2018 (of which ~122 were still functional), with a list of 148 fallbacks (70 new, 78 existing, 79 removed) generated in June 2019. Closes ticket 28795. Note that we created extra lists from DE and US, but they didn't add any more fallbacks when we tried to merge them.
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-12Add a chutney mode to travis.yml.Nick Mathewson
2019-06-12Travis: control "make check" with its own flagNick Mathewson
Previously we had "make check" launched whenever DISTCHECK was false. Now we'd like to turn it off in a few other circumstances, like running chutney. Maybe stem too?
2019-06-11Merge branch 'maint-0.2.9' into release-0.2.9Nick Mathewson
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-17Merge branch 'maint-0.2.9' into release-0.2.9Nick Mathewson
2019-05-17Update geoip and geoip6 to the May 13 2019 database.Karsten Loesing
2019-04-30Add changes filerl1987
2019-04-30Travis: remove sudo configurationrl1987
See: https://blog.travis-ci.com/2018-11-19-required-linux-infrastructure-migration
2019-04-19Merge branch 'maint-0.2.9' into release-0.2.9teor
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-09Changes file for bug30041Nick 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-06Merge branch 'maint-0.2.9' into release-0.2.9teor
2019-04-06Merge remote-tracking branch 'tor-github/pr/902' into maint-0.2.9teor
2019-04-06Merge remote-tracking branch 'tor-github/pr/877' into maint-0.2.9teor
2019-04-05Makefile: actually, don't delete the gcno filesteor
We need to keep the gcno files, because they are created at compile time.
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-03Merge branch 'maint-0.2.9' into release-0.2.9Nick Mathewson
2019-04-03Update geoip and geoip6 to the April 2 2019 database.Karsten Loesing
2019-04-02Merge branch 'maint-0.2.9' into release-0.2.9teor
2019-04-01Makefile: delete all the gcov-related files in reset-gcovteor
And fix a comment. See: https://gcc.gnu.org/onlinedocs/gcc/Gcov-Data-Files.html#Gcov-Data-Files