mariadb/regex
Vladislav Vaintroub 0eae06c430 Bug#473914: mysql_client_test fail with in debug compilaton on windows x64
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.
2010-12-06 12:52:06 +01:00
..
.cvsignore
cclass.h regexp worked only with the default character set. 2003-09-24 13:57:26 +05:00
CHANGES
CMakeLists.txt Bug#473914: mysql_client_test fail with in debug compilaton on windows x64 2010-12-06 12:52:06 +01:00
cname.h
COPYRIGHT
debug.c Many files: 2005-09-29 02:08:24 +02:00
debug.ih Many files: 2005-09-29 02:08:24 +02:00
engine.c Merge with MySQL 5.1.50 2010-08-27 17:12:44 +03:00
engine.ih Remove compiler warnings (Including some warnings from -Wstrict-aliasing) 2009-11-30 01:08:56 +02:00
main.c Fixed build & test failures in buildbot 2010-08-28 16:51:09 +03:00
main.ih Many files: 2005-09-29 02:08:24 +02:00
make-ccc
Makefile.am MWL#74: Shared libmysqld.so library. 2010-11-17 13:24:20 +01:00
my_regex.h Many files: 2005-09-29 02:08:24 +02:00
README
regcomp.c Use UNINIT_VAR workaround instead of LINT_INIT. 2010-07-09 16:37:52 -03:00
regcomp.ih Review of all code pushed since last review 2004-10-20 01:28:42 +03:00
regerror.c Many files: 2005-09-29 02:08:24 +02:00
regerror.ih Many files: 2005-09-29 02:08:24 +02:00
regex.3
regex.7
regex2.h
regexec.c Remove compiler warnings 2006-11-20 22:42:06 +02:00
regexp.c
regfree.c Many files: 2005-09-29 02:08:24 +02:00
reginit.c Fix for server bug experienced in Maria (wrong "Truncated incorrect <var_name> 2008-02-18 23:29:39 +01:00
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.
--------