mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
0eae06c430
Reason: inconsistent compilation, federatedx is compiled without SAFEMALLOC flag, while anything else is compiled with SAFEMALLOC. As a consequence, my_hash_init used inside federatedx initialization does not provide correct caller info parameters (file, line) , so they are initialized with whatever is on stack. When info about allocated memory is output in COM_DEBUG command, the server crashes trying to output string starting at 0xcccccccccccccccc. The fix is to remove SAFEMALLOC preprocessor flags from every CMakeLists.txt, except the top-level one. Also, SAFEMALLOC is not defined by default now, instead there is WITH_DEBUG_FULL CMake option which adds -DSAFEMALLOC to C and C++ flags in debug compilation. This option is off by default, because 1) Debug C runtime already has heap debugging builtin with overwrite and leak detection 2)safemalloc considerably slows down the tests. Note also that - SAFEMALLOC is gone in MySQL5.5 - On Windows, heap related overflows can also be found using free pageheap utility (that is also part of application verifier). This is even more efficient if there are no other layers on top of Windows heap allocator, e.g it is most efficient with release version. |
||
---|---|---|
.. | ||
.cvsignore | ||
cclass.h | ||
CHANGES | ||
CMakeLists.txt | ||
cname.h | ||
COPYRIGHT | ||
debug.c | ||
debug.ih | ||
engine.c | ||
engine.ih | ||
main.c | ||
main.ih | ||
make-ccc | ||
Makefile.am | ||
my_regex.h | ||
README | ||
regcomp.c | ||
regcomp.ih | ||
regerror.c | ||
regerror.ih | ||
regex.3 | ||
regex.7 | ||
regex2.h | ||
regexec.c | ||
regexp.c | ||
regfree.c | ||
reginit.c | ||
split.c | ||
tests | ||
utils.h | ||
WHATSNEW |
alpha3.4 release. Thu Mar 17 23:17:18 EST 1994 henry@zoo.toronto.edu See WHATSNEW for change listing. installation notes: -------- Read the comments at the beginning of Makefile before running. Utils.h contains some things that just might have to be modified on some systems, as well as a nested include (ugh) of <assert.h>. The "fake" directory contains quick-and-dirty fakes for some header files and routines that old systems may not have. Note also that -DUSEBCOPY will make utils.h substitute bcopy() for memmove(). After that, "make r" will build regcomp.o, regexec.o, regfree.o, and regerror.o (the actual routines), bundle them together into a test program, and run regression tests on them. No output is good output. "make lib" builds just the .o files for the actual routines (when you're happy with testing and have adjusted CFLAGS for production), and puts them together into libregex.a. You can pick up either the library or *.o ("make lib" makes sure there are no other .o files left around to confuse things). Main.c, debug.c, split.c are used for regression testing but are not part of the RE routines themselves. Regex.h goes in /usr/include. All other .h files are internal only. --------