diff options
author | unknown <serg@serg.mylan> | 2004-01-30 08:09:42 +0100 |
---|---|---|
committer | unknown <serg@serg.mylan> | 2004-01-30 08:09:42 +0100 |
commit | 14ede384fe113fbccd38d9389cdcb5391ca65403 (patch) | |
tree | cb98eb7653a3fa063a2efd6abfb7c179c7a07caa /sql/sql_list.h | |
parent | a2d67665d5901ee889839a87843bbd6d0b1cef23 (diff) | |
download | mariadb-git-14ede384fe113fbccd38d9389cdcb5391ca65403.tar.gz |
catch accesses to deleted objects
double delete bug fixed
sql/sql_list.h:
catch accesses to deleted objects
sql/sql_union.cc:
double delete fixed
Diffstat (limited to 'sql/sql_list.h')
-rw-r--r-- | sql/sql_list.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sql/sql_list.h b/sql/sql_list.h index 0972d0341f6..c7faef88358 100644 --- a/sql/sql_list.h +++ b/sql/sql_list.h @@ -21,6 +21,12 @@ /* mysql standard class memoryallocator */ +#ifdef PEDANTIC_SAFEMALLOC +#define TRASH(XX,YY) bfill((XX), (YY), 0x8F) +#else +#define TRASH(XX,YY) /* no-op */ +#endif + class Sql_alloc { public: @@ -34,8 +40,8 @@ public: } static void *operator new(size_t size, MEM_ROOT *mem_root) { return (void*) alloc_root(mem_root, (uint) size); } - static void operator delete(void *ptr, size_t size) {} /*lint -e715 */ - static void operator delete[](void *ptr, size_t size) {} + static void operator delete(void *ptr, size_t size) { TRASH(ptr, size); } + static void operator delete[](void *ptr, size_t size) { TRASH(ptr, size); } #ifdef HAVE_purify bool dummy; inline Sql_alloc() :dummy(0) {} |