aboutsummaryrefslogtreecommitdiff
path: root/src/common
Commit message (Collapse)AuthorAge
* Thread support is now requiredNick Mathewson2014-06-20
| | | | | | | | | | | Long ago we supported systems where there was no support for threads, or where the threading library was broken. We shouldn't have do that any more: on every OS that matters, threads exist, and the OS supports running threads across multiple CPUs. This resolves tickets 9495 and 12439. It's a prerequisite to making our workqueue code work better, since sensible workqueue implementations don't split across multiple processes.
* Remove code for Windows CE supportNick Mathewson2014-06-20
| | | | | | | As far as I know, nobody has used this in ages. It would be a pretty big surprise if it had worked. Closes ticket 11446.
* whitespace fixesNick Mathewson2014-06-16
|
* Merge branch 'bug8746_v2_squashed'Nick Mathewson2014-06-14
|\ | | | | | | | | Conflicts: src/common/include.am
| * New testing-only tor_sleep_msec functionNick Mathewson2014-06-14
| | | | | | | | | | In the unit tests I want to loop with a delay, but I want less than a 1 second delay. This, sadly, requires compatibility code.
| * On Windows, terminate processes by handle, not pidNick Mathewson2014-06-14
| | | | | | | | | | | | | | | | | | When we create a process yourself with CreateProcess, we get a handle to the process in the PROCESS_INFO output structure. But instead of using that handle, we were manually looking up a _new_ handle based on the process ID, which is a poor idea, since the process ID might refer to a new process later on, but the handle can't.
| * Use waitpid code to learn when a controlled process diesNick Mathewson2014-06-14
| | | | | | | | | | | | This lets us avoid sending SIGTERM to something that has already died, since we realize it has already died, and is a fix for the unix version of #8746.
| * New waitpid-handler functions to run callbacks when a child exits.Nick Mathewson2014-06-14
| | | | | | | | Also, move 'procmon' into libor_event library, since it uses libevent.
* | Fix a 32-big conversion warning in 11970 fixNick Mathewson2014-06-11
| |
* | Merge remote-tracking branch 'public/bug11970'Nick Mathewson2014-06-11
|\ \
| * | Yield a real error in the bug case of sandbox_getaddrinfo()Nick Mathewson2014-06-11
| | |
| * | sandbox: revamp sandbox_getaddrinfo cacheingNick Mathewson2014-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The old cache had problems: * It needed to be manually preloaded. (It didn't remember any address you didn't tell it to remember) * It was AF_INET only. * It looked at its cache even if the sandbox wasn't turned on. * It couldn't remember errors. * It had some memory management problems. (You can't use memcpy to copy an addrinfo safely; it has pointers in.) This patch fixes those issues, and moves to a hash table. Fixes bug 11970; bugfix on 0.2.5.1-alpha.
* | | Merge remote-tracking branch 'public/bug12227_024'Nick Mathewson2014-06-10
|\ \ \
| * | | Avoid illegal read off end of an array in prune_v2_cipher_listNick Mathewson2014-06-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This function is supposed to construct a list of all the ciphers in the "v2 link protocol cipher list" that are supported by Tor's openssl. It does this by invoking ssl23_get_cipher_by_char on each two-byte ciphersuite ID to see which ones give a match. But when ssl23_get_cipher_by_char cannot find a match for a two-byte SSL3/TLS ciphersuite ID, it checks to see whether it has a match for a three-byte SSL2 ciphersuite ID. This was causing a read off the end of the 'cipherid' array. This was probably harmless in practice, but we shouldn't be having any uninitialized reads. (Using ssl23_get_cipher_by_char in this way is a kludge, but then again the entire existence of the v2 link protocol is kind of a kludge. Once Tor 0.2.2 clients are all gone, we can drop this code entirely.) Found by starlight. Fix on 0.2.4.8-alpha. Fixes bug 12227.
| * | | Merge remote-tracking branch 'public/ticket11528_024' into maint-0.2.4Nick Mathewson2014-05-07
| |\ \ \
| * \ \ \ Merge remote-tracking branch 'public/bug11513_024' into maint-0.2.4Nick Mathewson2014-05-07
| |\ \ \ \
* | | | | | Spell getrlimit correctly.Nick Mathewson2014-06-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes bug in b0c1c700114aa8d4dfc180d85870c5bbe15fcacb; bug 12229. Bugfix not in any released Tor. Patch from "alphawolf".
* | | | | | sandbox: allow enough setsockopt to make ConstrainedSockets workNick Mathewson2014-05-29
| | | | | | | | | | | | | | | | | | | | | | | | fixes bug 12139; bugfix on 0.2.5.1-alpha
* | | | | | sandbox: permit listen(2)Nick Mathewson2014-05-27
| | | | | | | | | | | | | | | | | | | | | | | | Fix for 12115; bugfix on 0.2.5.1-alpha
* | | | | | Log the errno value if seccomp_load() fails.Nick Mathewson2014-05-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (This is how I found out I was trying to test with a kernel too old for seccomp. I think.)
* | | | | | Make sandbox.c compile on armNick Mathewson2014-05-27
| |_|_|/ / |/| | | | | | | | | | | | | | | | | | | This is a minimal set of changes for compilation; I need a more recent kernel to test this stuff.
* | | | | Merge remote-tracking branch 'andrea/bug11476'Nick Mathewson2014-05-22
|\ \ \ \ \
| * | | | | Add --disable-mempools configure optionAndrea Shepard2014-05-12
| | | | | |
* | | | | | sandbox: permit gettid, sched_getaffinityNick Mathewson2014-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These are needed under some circumstances if we are running with expensive-hardening and sandbox at the same time. fixes 11477, bugfix on 0.2.5.4-alpha (where we introduced expensive-hardening)
* | | | | | sandbox: support logfile rotationNick Mathewson2014-05-20
| | | | | | | | | | | | | | | | | | | | | | | | Fixes bug 12032; bugfix on 0.2.5.1-alpha
* | | | | | sandbox: Disallow options which would make us call exec()Nick Mathewson2014-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | None of the things we might exec() can possibly run under the sanbox, so rather than crash later, we have to refuse to accept the configuration nice and early. The longer-term solution is to have an exec() helper, but wow is that risky. fixes 12043; bugfix on 0.2.5.1-alpha
* | | | | | whitespace fix, moreNick Mathewson2014-05-14
| | | | | |
* | | | | | Merge branch 'bug11946'Nick Mathewson2014-05-14
|\ \ \ \ \ \
| * | | | | | Improved comments on bug11946 fixNick Mathewson2014-05-14
| | | | | | |
| * | | | | | Use tor_getpw{nam,uid} wrappers to fix bug 11946Nick Mathewson2014-05-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When running with User set, we frequently try to look up our information in the user database (e.g., /etc/passwd). The seccomp2 sandbox setup doesn't let us open /etc/passwd, and probably shouldn't. To fix this, we have a pair of wrappers for getpwnam and getpwuid. When a real call to getpwnam or getpwuid fails, they fall back to a cached value, if the uid/gid matches. (Granting access to /etc/passwd isn't possible with the way we handle opening files through the sandbox. It's not desirable either.)
| * | | | | | Add a pair of wrapper functions: tor_getpwnam() and tor_getpwuid()Nick Mathewson2014-05-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We'll use these to deal with being unable to access the user DB after we install the sandbox, to fix bug 11946.
* | | | | | | whitespace fixNick Mathewson2014-05-14
|/ / / / / /
* | | | | | Merge branch 'bug9781_v2'Nick Mathewson2014-05-12
|\ \ \ \ \ \
| * | | | | | Log an error reply from tor-fw-helper correctly.Nick Mathewson2014-05-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix for bug 9781; bugfix on cd05f35d2cdf50 in 0.2.4.2-alpha.
| * | | | | | Split portfw-error-logging code into a new function.Nick Mathewson2014-05-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | No code has changed; only moved. Part of a fix for 9781.
* | | | | | | Fix compilation of test_status.c with MSVCGisle Vanem2014-05-12
| | | | | | |
* | | | | | | Quench clang's complaints with -Wshorten-64-to-32 when time_t is not long.dana koch2014-05-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On OpenBSD 5.4, time_t is a 32-bit integer. These instances contain implicit treatment of long and time_t as comparable types, so explicitly cast to time_t.
* | | | | | | Return success when get_total_system_memory() succeeds.Nick Mathewson2014-05-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes bug 11805; bugfix on 0.2.5.4-alpha.
* | | | | | | Move code-generation scripts to scripts/codegenNick Mathewson2014-05-07
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | Now that we have a scripts/* directory, let's put the scripts we use for generating C there.
* | | | | | Merge remote-tracking branch 'public/bug11233_diagnose'Nick Mathewson2014-05-01
|\ \ \ \ \ \
| * | | | | | Better log message when writing a CR in text mode on windowsNick Mathewson2014-03-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Help to diagnose #11233
* | | | | | | Merge remote-tracking branch 'public/bug4345a_024'Nick Mathewson2014-05-01
|\ \ \ \ \ \ \ | |_|_|_|_|_|/ |/| | | | | |
| * | | | | | More hacking around spawn_func issuesNick Mathewson2014-02-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This time, we use a pthread_attr to make sure that if pthread_create succeeds, the thread is successfully detached. This probably isn't the big thing going on with 4345, since it'd be a bit weird for pthread_detach to be failing. But it's worth getting it right.
* | | | | | | Merge remote-tracking branch 'public/bug11605_024'Nick Mathewson2014-04-29
|\ \ \ \ \ \ \ | |_|_|/ / / / |/| | | | | |
| * | | | | | Make compilation of tor_memdup_nulterm() with dmallocNick Mathewson2014-04-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes bug 11605; bugfix on 0.2.4.10-alpha.
* | | | | | | resolve a typo: sanboxing->sandboxing.Nick Mathewson2014-04-25
| | | | | | |
* | | | | | | Merge branch 'scanbuild_fixes'Nick Mathewson2014-04-25
|\ \ \ \ \ \ \
| * | | | | | | scan-build: memarea_strndup() undefined behaviorNick Mathewson2014-04-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The memarea_strndup() function would have hit undefined behavior by creating an 'end' pointer off the end of a string if it had ever been given an 'n' argument bigger than the length of the memory ares that it's scanning. Fortunately, we never did that except in the unit tests. But it's not a safe behavior to leave lying around.
| * | | | | | | scan-build: avoid undef behaior in tor_inet_ptonNick Mathewson2014-04-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we had an address of the form "1.2.3.4" and we tried to pass it to tor_inet_pton with AF_INET6, it was possible for our 'eow' pointer to briefly move backwards to the point before the start of the string, before we moved it right back to the start of the string. C doesn't allow that, and though we haven't yet hit a compiler that decided to nuke us in response, it's best to fix. So, be more explicit about requiring there to be a : before any IPv4 address part of the IPv6 address. We would have rejected addresses without a : for not being IPv6 later on anyway.
| * | | | | | | scan-build: Add a check for result from getaddrinfoNick Mathewson2014-04-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As documented, getaddrinfo always sets its result when it returns no error. But scan-build doesn't know that, and thinks we might be def