summaryrefslogtreecommitdiff
path: root/storage/maria/ma_pagecache.c
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2020-03-28 21:05:55 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2020-03-28 21:42:59 +0200
commit6be56dd1c8a37eb98f4b7bc1507ca5991a2a1f61 (patch)
treea981e1d7a6ff9dbb6b7bbbceb4380ccccf660c55 /storage/maria/ma_pagecache.c
parent94d0bb4dbeb28a94d1f87fdd55f4297ff3df0157 (diff)
downloadmariadb-git-6be56dd1c8a37eb98f4b7bc1507ca5991a2a1f61.tar.gz
MDEV-20377: Enable MemorySanitizer user-poisoningbb-10.5-msan
For ENGINE=Aria, we work around bugs in various tests that catch writes of uninitialized bytes from the Aria page cache. (Why do we even write anything on DROP TABLE?)
Diffstat (limited to 'storage/maria/ma_pagecache.c')
-rw-r--r--storage/maria/ma_pagecache.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/storage/maria/ma_pagecache.c b/storage/maria/ma_pagecache.c
index e08c18fb579..8fa6646048d 100644
--- a/storage/maria/ma_pagecache.c
+++ b/storage/maria/ma_pagecache.c
@@ -681,6 +681,10 @@ static my_bool pagecache_fwrite(PAGECACHE *pagecache,
DBUG_PRINT("error", ("write callback problem"));
DBUG_RETURN(1);
}
+#if __has_feature(memory_sanitizer) /* FIXME: encryption.aria_tiny etc. fail */
+ /* FIXME: ENGINE=Aria occasionally writes uninitialized data */
+ __msan_unpoison(args.page, pagecache->block_size);
+#endif
res= (int)my_pwrite(filedesc->file, args.page, pagecache->block_size,
((my_off_t) pageno << pagecache->shift), flags);
(*filedesc->post_write_hook)(res, &args);