diff options
author | Monty <monty@mariadb.org> | 2020-06-12 17:03:15 +0300 |
---|---|---|
committer | Monty <monty@mariadb.org> | 2020-06-14 19:39:43 +0300 |
commit | c9f5cb97af6d3ef853f84a19602efea715016734 (patch) | |
tree | 8eb4fa7130cca0a51786baf4cbd8e55b365999a0 | |
parent | e843033d0233927b8f51d7dbe21993bdfb01ecdf (diff) | |
download | mariadb-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.h | 4 | ||||
-rw-r--r-- | mysys/mf_iocache.c | 2 |
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(). |