summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2011-01-12Make our replacement INT32_MAX always signedNick Mathewson
The C standard says that INT32_MAX is supposed to be a signed integer. On platforms that have it, we get the correct platform-defined value. Our own replacement, however, was unsigned. That's going to cause a bug somewhere eventually.
2011-01-10Update to the January 1 2011 Maxmind GeoLite Country database.Karsten Loesing
2011-01-07Remove a loud info log messageNick Mathewson
2011-01-07Correctly detect and exclude addresses outside of our virtual address rangeNick Mathewson
Found by cypherpunks; fixes more of 2328. Bug was introduced in 3623a122; first appeared in 0.2.0.5-alpha.
2011-01-06Merge branch 'bug2328_021' into maint-0.2.1Nick Mathewson
2011-01-06Notice a little faster if we're running out of virtual addressesNick Mathewson
We were not decrementing "available" every time we did ++next_virtual_addr in addressmap_get_virtual_address: we left out the --available when we skipped .00 and .255 addresses. This didn't actually cause a bug in most cases, since the failure mode was to keep looping around the virtual addresses until we found one, or until available hit zero. It could have given you an infinite loop rather than a useful message, however, if you said "VirtualAddrNetwork 127.0.0.255/32" or something broken like that. Spotted by cypherpunks
2011-01-05Handle a NULL return from addressmap_get_virtual_addressNick Mathewson
Fix for bug 2328; bugfix on 0.1.2.1-alpha; bug found by doorss.
2011-01-05Fix a double-counting bug in addrmap_get_virtual_addressNick Mathewson
We were decrementing "available" twice for each in-use address we ran across. This would make us declare that we ran out of virtual addresses when the address space was only half full.
2011-01-03Avoid assertion on read_file_to_str() with size==SIZE_T_CEILING-1Nick Mathewson
Spotted by doors, fixes bug 2326.
2011-01-03Check size against SIZE_T_CEILING in realloc too.Nick Mathewson
Fixes bug 2324.
2011-01-03Never include pthread.h when building for Windows.Nick Mathewson
On Windows, we never use pthreads, since it doesn't usually exist, and when it does it tends to be a little weirdly-behaved. But some mingw installations have a pthreads installed, so autoconf detects pthread.h and tells us about it. This would make us include pthread.h, which could make for trouble when the iffy pthread.h tried to include config.h. This patch changes compat.h so that we never include pthread.h on Windows. Fixes bug 2313; bugfix on 0.1.0.1-rc.
2011-01-03fix whitespace issuesNick Mathewson
2011-01-03Bump copyright statements to 2011Nick Mathewson
2010-12-21Merge remote branch 'public/bug2190_021' into maint-0.2.1Nick Mathewson
2010-12-16Merge commit 'nickm/fix_security_bug_021' into maint-0.2.1Roger Dingledine
2010-12-16Change gabelmoo's IP address and ports.Karsten Loesing
2010-12-15Make payloads into uint8_t.Nick Mathewson
This will avoid some signed/unsigned assignment-related bugs.
2010-12-13Have all of our allocation functions and a few others check for underflowNick Mathewson
It's all too easy in C to convert an unsigned value to a signed one, which will (on all modern computers) give you a huge signed value. If you have a size_t value of size greater than SSIZE_T_MAX, that is way likelier to be an underflow than it is to be an actual request for more than 2gb of memory in one go. (There's nothing in Tor that should be trying to allocate >2gb chunks.)
2010-12-13Base SIZE_T_CEILING on SSIZE_T_MAX.Nick Mathewson
2010-12-08Update to the December 1 2010 Maxmind GeoLite Country database.Karsten Loesing
2010-11-23Fix compilation with mingw and OpenSSL 0.9.8m+mingw-san
2010-11-23Use S_CASE for ehostunreach, not E_CASE. Partial backport of 69deb22f. Fixes ↵Nick Mathewson
0.2.1 compilation on windows
2010-11-21Merge branch 'fix2204' into maint-0.2.1Nick Mathewson
2010-11-20Do not set the hostname TLS extension server-side; only client-sideNick Mathewson
This may fix bug 2204, and resolve the incompatibility with openssl 0.9.8p/1.0.0b.
2010-11-19Do not send Libevent log messages to a controller (0.2.1 backport)Nick Mathewson
Doing so could make Libevent call Libevent from inside a Libevent logging call, which is a recipe for reentrant confusion and hard-to-debug crashes. This would especially hurt if Libevent debug-level logging is enabled AND the user has a controller watching for low-severity log messages. Fix bug 2190; fix on 0.1.0.2-rc.
2010-11-12Disable logging to control port connections in buf_shrink_freelists.Robert Ransom
If buf_shrink_freelists calls log_warn for some reason, we don't want the log call itself to throw buf_shrink_freelists further off the rails.
2010-11-12Move the original log_info call out of the core of buf_shrink_freelists.Robert Ransom
Sending a log message to a control port can cause Tor to allocate a buffer, thereby changing the length of the freelist behind buf_shrink_freelists's back, thereby causing an assertion to fail. Fixes bug #1125.
2010-11-11let unpublished bridges learn their ip address tooRoger Dingledine
2010-11-10Enforce multiplicity rules when parsing annotations.Nick Mathewson
We would never actually enforce multiplicity rules when parsing annotations, since the counts array never got entries added to it for annotations in the token list that got added by earlier calls to tokenize_string. Found by piebeer.
2010-11-10Fix a bug where seting allow_annotations==0 only ignores annotations, but ↵Nick Mathewson
does not block them
2010-10-04Update to the October 1 2010 Maxmind GeoLite Country database.Karsten Loesing
2010-09-28actually retry bridges when your network goes awayRoger Dingledine
2010-09-08Merge remote branch 'karsten/geoip-sep2010' into maint-0.2.1Nick Mathewson
2010-09-08Remove a needless keep_open_until_flushedNick Mathewson
2010-09-08Update to the September 1 2010 Maxmind GeoLite Country database.Karsten Loesing
2010-09-03Close a non-open OR connection *only* after KeepalivePeriod.Nick Mathewson
When we introduced the code to close non-open OR connections after KeepalivePeriod had passed, we replaced some code that said if (!connection_is_open(conn)) { /* let it keep handshaking forever */ } else if (do other tests here) { ... with new code that said if (!connection_is_open(conn) && past_keepalive) { /* let it keep handshaking forever */ } else if (do other tests here) { ... This was a mistake, since it made all the other tests start applying to non-open connections, thus causing bug 1840, where non-open connections get closed way early. Fixes bug 1840. Bugfix on 0.2.1.26 (commit 67b38d50).
2010-08-18Backport END_STREAM_REASON_NOROUTE for client use.Sebastian Hahn
(Partial backport of 150ed553dfce9, 161b275028e90, and 4c948ffd6.)
2010-08-17Merge branch 'bug1141_v3' into maint-0.2.1Nick Mathewson
2010-08-17Scale CONSENSUS_MIN_SECONDS_BEFORE_CACHING by voting intervalNick Mathewson
If the voting interval was short enough, the two-minutes delay of CONSENSUS_MIN_SECONDS_BEFORE_CACHING would confuse bridges to the point where they would assert before downloading a consensus. It it was even shorter (<4 minutes, I think), caches would assert too. This patch fixes that by having replacing the two-minutes value with MIN(2 minutes, interval/16). Bugfix for 1141; the cache bug could occur since 0.2.0.8-alpha, so I'm calling this a bugfix on that. Robert Hogan diagnosed this. Done as a patch against maint-0.2.1, since it makes it hard to run some kinds of testing networks.
2010-08-03Update to the August 1 2010 Maxmind GeoLite Country database.Karsten Loesing
2010-06-11Add maatuska as eighth v3 directory authority.Karsten Loesing
2010-06-07Update to June 1 2010 Maxmind GeoLite Country database.Karsten Loesing
2010-05-06move to maxmind geoip dbRoger Dingledine
2010-04-23close idle tls conns earlyRoger Dingledine
2010-04-23finally get rid of "clique mode"Roger Dingledine
2010-04-23close idle dir-fetch circs earlyRoger Dingledine
2010-04-13Fix renegotiation on OpenSSL versions that backport RFC5746.Nick Mathewson
Our code assumed that any version of OpenSSL before 0.9.8l could not possibly require SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION. This is so... except that many vendors have backported the flag from later versions of openssl when they backported the RFC5476 renegotiation feature. The new behavior is particularly annoying to detect. Previously, leaving SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION unset meant that clients would fail to renegotiate. People noticed that one fast! Now, OpenSSL's RFC5476 support means that clients will happily talk to any servers there are, but servers won't accept renegotiation requests from unpatched clients unless SSL_OP_ALLOW_etc is set. More fun: servers send back a "no renegotiation for you!" error, which unpatched clients respond to by stalling, and generally producing no useful error message. This might not be _the_ cause of bug 1346, but it is quite likely _a_ cause for bug 1346.
2010-04-12testsuite: Prevent the main thread from starving the worker threadsPeter Palfrader
2010-04-12testsuite: Only free the main mutex when and if all the worker threads are donePeter Palfrader
2010-04-03fetch relay descriptors from v3 authoritiesRoger Dingledine