diff options
author | Nick Mathewson <nickm@torproject.org> | 2015-03-09 15:09:49 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2015-03-09 15:09:49 -0400 |
commit | 24c031b1a28658c921a746f4d58f3ca5e9994108 (patch) | |
tree | b75415576527d580415a83d4d6338081c7ba76fb /src | |
parent | 681802817deb6fb93b95f8284856fd42f3556600 (diff) | |
download | tor-24c031b1a28658c921a746f4d58f3ca5e9994108.tar.gz tor-24c031b1a28658c921a746f4d58f3ca5e9994108.zip |
Don't use checked strl{cat,cpy} on OSX.
There is a bug in the overlap-checking in strlcat that can crash Tor
servers. Fixes bug 15205; this is an OSX bug, not a Tor bug.
Diffstat (limited to 'src')
-rw-r--r-- | src/common/compat.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/common/compat.h b/src/common/compat.h index ec7d2415ed..531e88f1bd 100644 --- a/src/common/compat.h +++ b/src/common/compat.h @@ -224,6 +224,18 @@ extern INLINE double U64_TO_DBL(uint64_t x) { #define strncasecmp _strnicmp #define strcasecmp _stricmp #endif + +#if defined __APPLE__ +/* On OSX 10.9 and later, the overlap-checking code for strlcat would + * appear to have a severe bug that can sometimes cause aborts in Tor. + * Instead, use the non-checking variants. This is sad. + * + * See https://trac.torproject.org/projects/tor/ticket/15205 + */ +#undef strlcat +#undef strlcpy +#endif + #ifndef HAVE_STRLCAT size_t strlcat(char *dst, const char *src, size_t siz) ATTR_NONNULL((1,2)); #endif |