summaryrefslogtreecommitdiff
path: root/src/or/buffers.c
AgeCommit message (Collapse)Author
2013-05-15Fix socks5 handshake for username/password authRoger Dingledine
The fix for bug 8117 exposed this bug, and it turns out real-world applications like Pidgin do care. Bugfix on 0.2.3.2-alpha; fixes bug 8879.
2013-05-09Merge remote-tracking branch 'origin/maint-0.2.3' into maint-0.2.4Nick Mathewson
2013-05-09Don't run off the end of the array-of-freelistsNick Mathewson
This is a fix for bug 8844, where eugenis correctly notes that there's a sentinel value at the end of the list-of-freelists that's never actually checked. It's a bug since the first version of the chunked buffer code back in 0.2.0.16-alpha. This would probably be a crash bug if it ever happens, but nobody's ever reported something like this, so I'm unsure whether it can occur. It would require write_to_buf, write_to_buf_zlib, read_to_buf, or read_to_buf_tls to get an input size of more than 32K. Still, it's a good idea to fix this kind of thing!
2013-04-11Merge remote-tracking branch 'public/bug8117_023' into maint-0.2.4Nick Mathewson
Conflicts: doc/tor.1.txt src/or/config.c src/or/connection.c
2013-03-20Per-SOCKSPort configuration for bug 8117 fix.Nick Mathewson
This might be necessary if the bug8117 fix confuses any applications. Also add a changes file.
2013-03-20Prefer SOCKS_USER_PASS over SOCKS_NO_AUTHNick Mathewson
2013-02-15Fix a bug that roger found in the wide_circ_id codeNick Mathewson
2013-02-15Merge remote-tracking branch 'public/wide_circ_ids'Nick Mathewson
Conflicts: src/or/channel.h src/or/connection_or.c src/or/cpuworker.c
2013-02-09Replace magic constants for wide_circ_ids with inline function callsNick Mathewson
2013-02-07Merge remote-tracking branch 'public/easy_ratelim'Nick Mathewson
Conflicts: src/or/connection.c
2013-02-01Rename log() to tor_log() for loggingNick Mathewson
This is meant to avoid conflict with the built-in log() function in math.h. It resolves ticket 7599. First reported by dhill. This was generated with the following perl script: #!/usr/bin/perl -w -i -p s/\blog\(LOG_(ERR|WARN|NOTICE|INFO|DEBUG)\s*,\s*/log_\L$1\(/g; s/\blog\(/tor_log\(/g;
2013-01-16Update the copyright date to 201.Nick Mathewson
2012-12-26Use log_fn_ratelim in a few places.Nick Mathewson
2012-11-14Move address map into its own file.Nick Mathewson
2012-11-08Merge remote-tracking branch 'origin/maint-0.2.3'Nick Mathewson
Conflicts: src/common/crypto.c src/or/rendservice.c
2012-11-08Add and use and unlikely-to-be-eliminated memwipe()Nick Mathewson
Apparently some compilers like to eliminate memset() operations on data that's about to go out-of-scope. I've gone with the safest possible replacement, which might be a bit slow. I don't think this is critical path in any way that will affect performance, but if it is, we can work on that in 0.2.4. Fixes bug 7352.
2012-11-06Allow a v4 link protocol for 4-byte circuit IDs.Nick Mathewson
Implements proposal 214. Needs testing.
2012-08-13Remove tor_malloc_roundup().Nick Mathewson
This function never actually did us any good, and it added a little complexity. See the changes file for more info.
2012-06-15Triage the XXX023 and XXX022 comments: postpone many.Nick Mathewson
2012-06-04Update copyright dates to 2012; add a few missing copyright statementsNick Mathewson
2012-06-04Add about 60 more DOCDOC comments to 0.2.3Nick Mathewson
Also, try to resolve some doxygen issues. First, define a magic "This is doxygen!" macro so that we take the correct branch in various #if/#else/#endifs in order to get the right documentation. Second, add in a few grouping @{ and @} entries in order to get some variables and fields to get grouped together.
2012-05-14MSVC build issue: we use INLINE as the one that will magically workNick Mathewson
2012-04-24Add a check_no_tls_errors() to read_to_buf_tlsArturo Filastò
Fixes bug #4528 "read_to_buf_tls(): Inconsistency in code". This check was added back in 0.1.0.3-rc, but somehow we forgot to leave it in when we refactored read_to_buf_tls in 0.1.0.5-rc. (patch by Arturo; commit message and changes file by nickm)
2012-01-31Use the standard _WIN32, not the Torism MS_WINDOWS or deprecated WIN32Nick Mathewson
This commit is completely mechanical; I used this perl script to make it: #!/usr/bin/perl -w -i.bak -p if (/^\s*\#/) { s/MS_WINDOWS/_WIN32/g; s/\bWIN32\b/_WIN32/g; }
2012-01-17Use SOCKET_OK macros in even more placesNick Mathewson
Add a TOR_INVALID_SOCKET macro to wrap -1/INVALID_SOCKET. Partial work for bug4533.
2011-12-15Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson
2011-12-15Merge remote-tracking branch 'origin/maint-0.2.1' into maint-0.2.2Nick Mathewson
2011-12-15Add a fix for the buf_pullup bug that Vektor reportedNick Mathewson
2011-10-11Fix a bunch of whitespace errorsNick Mathewson
2011-10-10Cell types and states for new OR handshakeNick Mathewson
Also, define all commands > 128 as variable-length when using v3 or later link protocol. Running into a var cell with an unrecognized type is no longer a bug.
2011-10-03Rephrase the log messages emitted if the TestSocks check is positiveFabian Keil
Previously Tor would always claim to have been given a hostname by the client, while actually only verifying that the client is using SOCKS4A or SOCKS5 with hostnames. Both protocol versions allow IP addresses, too, in which case the log messages were wrong. Fixes #4094.
2011-08-18Remove warning about a loop parsing evbuffer socksNick Mathewson
This behavior is normal when we want more data than the evbuffer actually has for us. We'll ask for (say) 7 bytes, get only 5 (because that's all there is), try to parse the 5 bytes, and get told "no, I want 7". One option would be to bail out early whenever want_length is > buflen, but sometimes we use an over-large want_length. So instead, let's just remove the warning here: it's not a bug after all.
2011-08-18Appease "make check-spaces"Nick Mathewson
2011-08-17Use evbuffer_copyout() in inspect_evbuffer().Nick Mathewson
2011-08-05Clear socks auth fields before freeNick Mathewson
2011-07-20Merge branch 'optimistic-client'Nick Mathewson
The conflicts are with the proposal 171 circuit isolation code, and they're all trivial: they're just a matter of both branches adding some unrelated code in the same places. Conflicts: src/or/circuituse.c src/or/connection.c
2011-07-19Fix spurious warning in bufferevent socks parsingNick Mathewson
The problem was that we weren't initializing want_length to 0 before calling parse_socks() the first time, so it looked like we were risking an infinite loop when in fact we were safe. Fixes 3615; bugfix on 0.2.3.2-alpha.
2011-07-18Add a generic_buffer_t to use the best buffer type we have on handNick Mathewson
Also add a quick function to copy all the data in a buffer. (This one could be done much better, but let's see if it matters.)
2011-07-13Merge remote-tracking branch 'public/bug1666'Nick Mathewson
Conflicts: doc/spec/socks-extensions.txt src/or/buffers.c src/or/config.c src/or/connection_edge.c
2011-07-12Add more error checks to socks parsing codeNick Mathewson
Suggested by Linus to avoid uninitialized reads or infinite loops if it turns out our code is buggier than we had thought.
2011-07-07Remove unused var in write_to_evbuffer_zlibNick Mathewson
2011-06-29Refactor fetch_from_buf_socks() to be greedyNick Mathewson
Previously, fetch_from_buf_socks() might return 0 if there was still data on the buffer and a subsequent call to fetch_from_buf_socks() would return 1. This was making some of the socks5 unit tests harder to write, and could potentially have caused misbehavior with some overly verbose SOCKS implementations. Now, fetch_from_buf_socks() does as much processing as it can, and returns 0 only if it really needs more data. This brings it into line with the evbuffer socks implementation.
2011-06-29Don't drain extra data when parsing socks auth methodsNick Mathewson
We added this back in 0649fa14 in 2006, to deal with the case where the client unconditionally sent us authentication data. Hopefully, that's not needed any longer, since we now can actually parse authentication data.
2011-06-29Record username/password data in socks_request_tNick Mathewson
This change also requires us to add and use a pair of allocator/deallocator functions for socks_request_t, instead of using tor_malloc_zero/tor_free directly.
2011-06-29If we negotiate authentication, require it.Nick Mathewson
2011-06-29Be more strict about when to accept socks auth messageNick Mathewson
In the code as it stood, we would accept any number of socks5 username/password authentication messages, regardless of whether we had actually negotiated username/password authentication. Instead, we should only accept one, and only if we have really negotiated username/password authentication. This patch also makes some fields of socks_request_t into uint8_t, for safety.
2011-06-29Fix 'make check-spaces'Nick Mathewson
2011-06-29Correct byte-counting in socks auth parsing codeNick Mathewson
2011-06-14Make the get_options() return constNick Mathewson
This lets us make a lot of other stuff const, allows the compiler to generate (slightly) better code, and will make me get slightly fewer patches from folks who stick mutable stuff into or_options_t. const: because not every input is an output!
2011-05-30Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson
Conflicts: src/common/compat.c src/or/main.c