summaryrefslogtreecommitdiff
path: root/src/common/compat.c
AgeCommit message (Collapse)Author
2018-04-12Make get_total_system_memory mockable.Alexander Færøy
This patch makes get_total_system_memory mockable, which allows us to alter the return value of the function in tests. See: https://bugs.torproject.org/24782
2018-02-07more fixes for typos, grammar, whitespace, etcRoger Dingledine
some of these ought to have been noticed by the "misspell" tool, so if anybody is debugging it, here are some bug reports :)
2018-02-07Fix spelling mistakes corresponding to ticket #23650Deepesh Pathak
2018-01-17Merge branch 'bug21074_029'Nick Mathewson
2018-01-17Add a cast to avoid a signed/unsigned comparisonNick Mathewson
2018-01-16Merge branch 'bug21074_029'Nick Mathewson
2018-01-04Don't treat a setrlimit failure as fatal.Nick Mathewson
Fixes bug 21074; bugfix on 4689243242e2e12 in 0.0.9rc5 when we started doing setrlimit() in the first place.
2017-12-08Convert remaining function (mostly static) to new free styleNick Mathewson
2017-10-18New function for Tor to treat itself as the "owner" of a socketNick Mathewson
Our socket accounting functions assumed that we'd never be asked to close a socket that we didn't open ourselves. But now we want to support taking control sockets that we inherit -- so we need a way of taking ownership of them, so we don't freak out later on when we close them.
2017-10-18Make the mark_socket_open() no-op treat the socket as used.Nick Mathewson
This is preliminary for extracting the "take socket ownership" code into its own function.
2017-09-28Move around some LCOV_EXCLs in src/commonNick Mathewson
Apparently, my compiler now generates coverage markers for label-only lines, so we need to exclude those too if they are meant to be unreachable.
2017-09-15Merge branch 'scan-build-032'Nick Mathewson
2017-09-15Run our #else/#endif annotator on our source code.Nick Mathewson
2017-09-15Split some long #if lines to make the #endif annotator happyNick Mathewson
2017-09-12Fix warnings about passing uninitialized buffers into functionsNick Mathewson
Most of these buffers were never actually inspected, but it's still bad style.
2017-09-12Clear up dead-assignment warnings from scan-buildNick Mathewson
2017-09-11Fix mixed-sign comparison warning in fix for 22797.Nick Mathewson
2017-09-11Merge branch 'teor-bug22797-025' into maint-0.2.9Nick Mathewson
2017-08-07fix typo in commentRoger Dingledine
2017-08-04Tweak usage of get_current_working_dir() for tor_malloc() paranoia.Nick Mathewson
We assume that tor_free() is not required to be compatible with the platform malloc(), so we need to use a strdup here.
2017-08-04Refactor retrieving the current working directorycypherpunks
The GNU C Library (glibc) offers an function which allocates the necessary memory automatically [0]. When it is available, we use that. Otherwise we depend upon the `getcwd` function which requires a preallocated buffer (and its size). This function was used incorrectly by depending on the initial buffer size being big enough and otherwise failing to return the current working directory. The proper way of getting the current working directory requires a loop which doubles the buffer size if `getcwd` requires it. This code was copied from [1] with modifications to fit the context. [0] https://www.gnu.org/software/hurd/hurd/porting/guidelines.html [1] http://pubs.opengroup.org/onlinepubs/9699919799/functions/getcwd.html
2017-07-07Use LANG_ENGLISH in windows error messagesNick Mathewson
This change prevents us from generating corrupt messages when we are confused about codepage settings, and makes Windows errors consistent with the rest of our logs. Fixes bug 22520; bugfix on 0.1.2.8-alpha. Patch from "Vort".
2017-07-05Fix mixed-sign comparison warning in fix for 22797.Nick Mathewson
2017-07-05Merge branch 'maint-0.3.0' into maint-0.3.1Nick Mathewson
2017-07-05Merge branch 'maint-0.2.9' into maint-0.3.0Nick Mathewson
2017-07-05Merge branch 'maint-0.2.8' into maint-0.2.9Nick Mathewson
2017-07-05Merge branch 'maint-0.2.7-redux' into maint-0.2.8Nick Mathewson
2017-07-05Merge branch 'maint-0.2.6' into maint-0.2.7-reduxNick Mathewson
2017-07-05Merge branch 'maint-0.2.5' into maint-0.2.6Nick Mathewson
2017-07-05Merge branch 'maint-0.2.4' into maint-0.2.5Nick Mathewson
2017-07-05Merge branch 'teor-bug22797-025' into maint-0.3.1Nick Mathewson
2017-07-05Always allow extra file descriptors when setting the connection maximumteor
When setting the maximum number of connections allowed by the OS, always allow some extra file descriptors for other files. Fixes bug 22797; bugfix on 0.2.0.10-alpha.
2017-07-03Fix assertion failure related to openbsd strtol().Nick Mathewson
Fixes bug 22789; bugfix on 0.2.3.8-alpha.
2017-05-26Cleanup MOCK_IMPL (etc) to be findable with etagsNick Mathewson
A fair number of our mock_impl declarations were messed up so that even our special AM_ETAGSFLAGS couldn't find them. This should be a whitespace-only patch.
2017-03-15Run the copyright update script.Nick Mathewson
2017-03-09Remove fgets() compatbility function and related tests.Alexander Færøy
This patch removes the `tor_fgets()` wrapper around `fgets(3)` since it is no longer needed. The function was created due to inconsistency between the returned values of `fgets(3)` on different versions of Unix when using `fgets(3)` on non-blocking file descriptors, but with the recent changes in bug #21654 we switch from unbuffered to direct I/O on non-blocking file descriptors in our utility module. We continue to use `fgets(3)` directly in the geoip and dirserv module since this usage is considered safe. This patch also removes the test-case that was created to detect differences in the implementation of `fgets(3)` as well as the changes file since these changes was not included in any releases yet. See: https://bugs.torproject.org/21654
2017-03-01Add compatibility function for fgets(3).Alexander Færøy
This patch adds the `tor_fgets()` function to our compatibility layer. `tor_fgets()` adds an additional check for whether the error-bit have been enabled for the given file stream, if that is the case and `errno` is set to `EAGAIN` we make sure that we always return NULL. Unfortunately `fgets(3)` behaves differently on different versions of the C library. See: https://bugs.torproject.org/21416 See: https://bugs.torproject.org/20988
2017-01-25Fix a signed/unsigned comparison warningNick Mathewson
2017-01-25Fail if file is too large to mmap.junglefowl
If tor_mmap_file is called with a file which is larger than SIZE_MAX, only a small part of the file will be memory-mapped due to integer truncation. This can only realistically happen on 32 bit architectures with large file support.
2016-12-16Revert "Stop checking whether environ is declared."Nick Mathewson
This reverts commit 954eeda619a59dae76144ad69967f0ed7341b564. Apparently, OpenBSD is what expects you to declare environ yourself. So 19142 is a wontfix.
2016-12-12Stop checking whether environ is declared.Nick Mathewson
There seems to be pretty good evidence that it's always declared, and that checking for it is pointless. Closes ticket 19142.
2016-11-22Merge remote-tracking branch 'teor/fix-mingw-pagesize'Nick Mathewson
2016-11-08Use va_copy() in pure-windows version of tor_asprintf().Nick Mathewson
It's not okay to use the same varargs list twice, and apparently some windows build environments produce code here that would leave tor_asprintf() broken. Fix for bug 20560; bugfix on 0.2.2.11-alpha when tor_asprintf() was introduced.
2016-11-03Check for getpagesize before using it to mmap filesteor
This fixes compilation in some MinGW environments. Fixes bug 20530; bugfix on commit bf72878 in tor-0.1.2.1-alpha. Reported by "ice".
2016-10-31Actually clamp the number of detected CPUs to 16.Nick Mathewson
Previously we said we did, but didn't. Fixes #19968; bugfix on 0.2.3.1-alpha.
2016-09-09Fix cases where the tests were doing closesocket() on a non-socketNick Mathewson
These seem to have caused warnings on windows. Hmmm.
2016-09-06checkSpace.pl now forbids more identifiers.Nick Mathewson
The functions it warns about are: assert, memcmp, strcat, strcpy, sprintf, malloc, free, realloc, strdup, strndup, calloc. Also, fix a few lingering instances of these in the code. Use other conventions to indicate _intended_ use of assert and malloc/realloc/etc.
2016-08-12Fix integer overflows in the conversion tablescypherpunks
2016-07-29Keep make check-spaces happyAndrea Shepard
2016-07-28Fix a huge pile of -Wshadow warnings.Nick Mathewson
These appeared on some of the Jenkins platforms. Apparently some GCCs care when you shadow globals, and some don't.