summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMonty <monty@mariadb.org>2020-06-12 17:03:15 +0300
committerMonty <monty@mariadb.org>2020-06-14 19:39:43 +0300
commitc9f5cb97af6d3ef853f84a19602efea715016734 (patch)
tree8eb4fa7130cca0a51786baf4cbd8e55b365999a0
parente843033d0233927b8f51d7dbe21993bdfb01ecdf (diff)
downloadmariadb-git-c9f5cb97af6d3ef853f84a19602efea715016734.tar.gz
Added checks for uninitalized memory when writing to IO_CACHE
This was done to be able to track some cases of unallocated memory in replication tests reported by MSAN.
-rw-r--r--include/my_sys.h4
-rw-r--r--mysys/mf_iocache.c2
2 files changed, 4 insertions, 2 deletions
diff --git a/include/my_sys.h b/include/my_sys.h
index c0381997957..29d019d96b8 100644
--- a/include/my_sys.h
+++ b/include/my_sys.h
@@ -24,9 +24,7 @@ C_MODE_START
#include <my_valgrind.h>
-
#include <my_pthread.h>
-
#include <m_ctype.h> /* for CHARSET_INFO */
#include <stdarg.h>
#include <typelib.h>
@@ -509,6 +507,7 @@ static inline int my_b_read(IO_CACHE *info, uchar *Buffer, size_t Count)
static inline int my_b_write(IO_CACHE *info, const uchar *Buffer, size_t Count)
{
+ MEM_CHECK_DEFINED(Buffer, Count);
if (info->write_pos + Count <= info->write_end)
{
memcpy(info->write_pos, Buffer, Count);
@@ -530,6 +529,7 @@ static inline int my_b_get(IO_CACHE *info)
static inline my_bool my_b_write_byte(IO_CACHE *info, uchar chr)
{
+ MEM_CHECK_DEFINED(&chr, 1);
if (info->write_pos >= info->write_end)
if (my_b_flush_io_cache(info, 1))
return 1;
diff --git a/mysys/mf_iocache.c b/mysys/mf_iocache.c
index d222dd8c99c..2e34cef5d19 100644
--- a/mysys/mf_iocache.c
+++ b/mysys/mf_iocache.c
@@ -1566,6 +1566,8 @@ int my_b_append(IO_CACHE *info, const uchar *Buffer, size_t Count)
{
size_t rest_length,length;
+ MEM_CHECK_DEFINED(Buffer, Count);
+
/*
Assert that we cannot come here with a shared cache. If we do one
day, we might need to add a call to copy_to_read_buffer().