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 Import changeset 2000-07-31 21:29:14 +02:00
cclass.h regexp worked only with the default character set. 2003-09-24 13:57:26 +05:00
CHANGES Import changeset 2000-07-31 21:29:14 +02:00
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 Query cache. 2001-12-02 14:34:01 +02:00
COPYRIGHT Import changeset 2000-07-31 21:29:14 +02:00
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 Import changeset 2000-07-31 21:29:14 +02:00
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 Import changeset 2000-07-31 21:29:14 +02:00
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 Import changeset 2000-07-31 21:29:14 +02:00
regex.7 Import changeset 2000-07-31 21:29:14 +02:00
regex2.h Regex library is switched to use new ctype tools 2002-03-06 20:04:13 +04:00
regexec.c Remove compiler warnings 2006-11-20 22:42:06 +02:00
regexp.c Changed to use my_global.h 2001-09-14 02:54:33 +03:00
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 Query cache. 2001-12-02 14:34:01 +02:00
tests Import changeset 2000-07-31 21:29:14 +02:00
utils.h Import changeset 2000-07-31 21:29:14 +02:00
WHATSNEW Import changeset 2000-07-31 21:29:14 +02:00

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.
--------